UVa 10252 - Common Permutation Solution

#include <iostream>
#include <string>
#include <vector>
using namespace std;
#define min(a,b) (a<b?a:b)
int main(){
    ios::sync_with_stdio(0);
    string s1,s2;
    while(1){
        getline(cin,s1);
        getline(cin,s2);
        vector<int> a(26),b(26);
        int sp1=0,sp2=0;
        for(int i=0;i<s1.size();i++)
            if(s1[i]==' ')
                sp1++;
            else
            a[s1[i]-'a']++;
        for(int i=0;i<s2.size();i++)
            if(s2[i]==' ')
                sp2++;
            else
            b[s2[i]-'a']++;
        for(int i=0;i<min(sp1,sp2);i++)
            cout<<' ';
        for(int i=0;i<26;i++)
            for(int j=0;j<min(a[i],b[i]);j++)
                cout<<char('a'+i);
        if(!cin.eof())
            cout<<endl;
        else
            return 0;
    }
}

Comments