HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10048_Common permutation

来源:互联网 发布:网络营销优化公司 编辑:程序博客网 时间:2024/04/29 05:20
Common permutation Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB Total submit users: 418, Accepted users: 386 Problem 10048 : No special judgement Problem description 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 consists of pairs of lines. 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 1,000 lowercase letters. Output For each subsequent pair of input lines, output a line containing x. If several x satisfy the criteria above, choose the first one in alphabetical order. Sample Input
prettywomenwalkingdownthestreet
Sample Output
enwet
Problem Source UAL 1999

CODE

/*  Name:  10048_Common permutation  Copyright:  yangchun's  Author:  yangchun  Date:  22-06-08 19:38  Description:  HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10048_Common permutation*/#include <algorithm>#include <stdio.h>#include <time.h>using namespace std;int main(){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout);        int i, j, len_a, len_b, ch_num[26] = {0};    char a[1001] = {'/0'}, b[1001] = {'/0'},         ch[27] = "abcdefghijklmnopqrstuvwxyz";        while(gets(a)!=NULL)    {        gets(b);        len_a = strlen(a);        len_b = strlen(b);                for(i=0; i<len_a; i++)            for(j=0; j<len_b; j++)            {                if(a[i] == b[j])                {                    b[j] -= b[j]-32;                    ch_num[a[i]-'a']++;                    break;                }            }                    for(i=0; i<26; i++)        {            if(ch_num[i] > 0)            {                for(j=0; j<ch_num[i]; j++)                    printf("%c",ch[i]);            }        }        printf("/n");                memset(a,'/0',sizeof(a));        memset(b,'/0',sizeof(b));        memset(ch_num,0,sizeof(ch_num));                   }       // printf("time = %ld ms/n",clock());        return 0;}