CodeForces-747B

来源:互联网 发布:管家婆成本算法怎么改 编辑:程序博客网 时间:2024/06/06 21:10

    在两种情况下不能得到答案:1、n不是4的整数倍 2、某个字符的数量大于n/4

    如果满足上述条件直接打印“===”,否则填充数组。

AC代码:

#include<cstdio>#include<cstring>const int maxn=255+5;char s[maxn],cnt[4];const char ch[]={'A','C','G','T'};int main(){int n;while(scanf("%d",&n)!=EOF){memset(cnt,0,sizeof(cnt));scanf("%s",s);if(n%4!=0) {printf("===\n");continue;}for(int i=0;i<n;++i){if(s[i]=='A') cnt[0]++;else if(s[i]=='C') cnt[1]++;else if(s[i]=='G') cnt[2]++;else if(s[i]=='T') cnt[3]++;}int flag=1;for(int i=0;i<4;++i) if(cnt[i]>n/4) {printf("===\n");flag=0;break;}if(!flag) continue;for(int i=0;i<n;++i){if(s[i]!='?') continue;for(int j=0;j<4;++j){if(cnt[j]<n/4) {++cnt[j];s[i]=ch[j];break;}}}printf("%s\n",s);}return 0;}

如有不当之处欢迎指出!

0 0