Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3286 Accepted Submission(s): 982
zoj ozojo ozoojoo oozoojoooo zooj ozojo oooozojo zojoooo
Accepted Accepted Accepted Accepted Accepted Accepted Wrong Answer Wrong Answer
继续赛后清题,这题以前做过,还是跪了!!!
题解: 可根据前面两条规则,推断出一个规律:
1.形成zoooj,两端有o或者没有o的情况;
2.形成oozoojoooo,z前面o的个数于z,j之间o的个数的积等于j后面o的个数。
具体代码如下:
#include<cstdio> #include<cstring> char str[1010]; int main() { int len,z,j,a,b,c,x,y,i; while(scanf("%s",str)!=EOF) { a=b=c=0; len=strlen(str); for(i=0;i<len;i++) { if(str[i]=='z') { a++; z=i;//标记z出现的位置 } else if(str[i]=='j') { b++; j=i;//标记j出现的位置 } else c++; } if(a==1&&b==1&&c!=0)//每个字符串里只有一个z和j { x=z;//统计z前面的o的个数 y=len-1-j;//统计j后面的o的个数 if(x==0&&y==0&&c!=0) printf("Accepted\n"); else if(c-x-y!=0&&(x*(c-x-y)==y)) printf("Accepted\n"); else printf("Wrong Answer\n"); } else printf("Wrong Answer\n"); } return 0; }