Codeforces Round #387 (Div. 2)B. Mammoth’s Genome Decoding
这道题善良到不行,就是测你会不会手抖而已,
依次分配AGCT就好了,如果符合就输出
#include <iostream>
#include <cstdio>
#include <cstring>
int main()
{
int n;
char s[300];
scanf("%d",&n);
scanf("%s",s);
if(n%4!=0){
printf("===\n");
return 0;
}else {
int a,g,c,t,wen,aver = n/4;
a=g=c=t=wen=0;
for(int i=0;i<n;++i){
if(s[i]=='A')a++;
else if(s[i]=='G')g++;
else if(s[i]=='C')c++;
else if(s[i]=='T')t++;
else wen++;
}
if(a>aver || g>aver || c>aver || t>aver){
printf("===\n");
return 0;
}
if(a+wen<aver || g+wen<aver || c+wen<aver || t+wen<aver ){
printf("===\n");
return 0;
}
for(int i=0;i<n;++i){
if(s[i]=='?'){
if(a<aver){
s[i]='A';
a++;
}else if(g<aver){
s[i]='G';
g++;
}else if(c<aver){
s[i]='C';
c++;
}else if(t<aver){
s[i]='T';
t++;
}
}
}
if(a==aver && g==aver && c==aver && t==aver)printf("%s\n",s);
else printf("===\n");
}
return 0;
}