ABC058C 怪文書/Dubious Document
int main()
{
cout <<setprecision(10);
int n ; cin >> n;
vector<string> S(n);
rep(i,n) cin >>S[i];
int num[26];
rep(i,26) num[i] = 50 ;
rep(i,n){
for(int c = 'a' ; c <= 'z' ; c++){
int count = 0;
for(int j = 0 ; j <= S[i].size() ; j ++){
if(S[i][j]==c){
count ++;
}
}
chmin(num[c-'a'],count);
}
}
int ans = 0;
rep(i,26){
char c = 'a'+i;
rep(j,num[i]){
cout <<c;
}
}
cout << endl;
}解法
aの使える個数は、S1~Snのそれぞれに入っているaの数をsa1,sa2,...sanとすると、 それの最小値
って感じなことをやっていく
sa1~sanの最小値はnum[0]に格納されている
で
あとは
a~zについて、aをnum[0]回,bをnum[1]回…出力させれば解ける