2012-04-03 07:01:37Morris

[UVA] 10252 - Common Permutation

Problem G

Common Permutation

Input: standard input

Output: standard output

Time Limit: 4 seconds

Memory Limit: 32 MB

 

Given two strings of lowercase letters, a and b, print the longest string x of lowercase letters such that there is a permutation of x that is a subsequence of a and there is a permutation of x that is a subsequence of b.

 

Input

Input file contains several lines of input. Consecutive two lines make a set of input. That means in the input file line 1 and 2 is a set of input, line 3 and 4 is a set of input and so on. The first line of a pair contains a and the second contains b. Each string is on a separate line and consists of at most 1000 lowercase letters.

 

Output

For each set of input, output a line containing x. If several x satisfy the criteria above, choose the first one in alphabetical order.

 

Sample Input:

pretty
women
walking
down
the
street
 

Sample Output:

e
nw

et



#include <stdio.h>
int main() {
    char s[1001];
    while(gets(s)) {
        int count1[128] = {}, count2[128] = {};
        int i, j;
        for(i = 0; s[i]; i++)
            count1[s[i]]++;
        gets(s);
        for(i = 0; s[i]; i++)
            count2[s[i]]++;
        for(i = 0; i < 128; i++) {
            for(j = 0; j < count1[i] && j < count2[i]; j++)
                printf("%c", i);
        }
        puts("");
    }
    return 0;
}