思路:
如题意。通过仔细推敲我们可以发现,只有当第一部分o的个数*第二部分o的个数=第三部分o的个数的时候,Accepted。并且第二部分的o的个数不为0,所以要对这个进行特判。。就死在了这上面。。
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> using namespace std; int main() { char s[1000+5]; while(~scanf("%s",s)) { int len=strlen(s); int zpos=0,jpos=0; int preo=0,mido=0,aftero=0; int flag1=1,flag2=1; int zs=0,js=0; for(int i=0;i<len;i++) { if(s[i]=='z') { zpos=i; flag1=0; zs++; } if(s[i]=='j') { jpos=i; flag2=0; js++; } if(s[i]=='o'&&flag1&&flag2){ preo++; } if(s[i]=='o'&&!flag1&&flag2){ mido++; } if(s[i]=='o'&&!flag1&&!flag2){ aftero++; } } if(zs==1&&js==1&&mido!=0){ if(preo==0&&mido==0&&aftero==0){ printf("Wrong Answer\n"); continue; } if(preo==0&&mido!=0&&aftero==0){ printf("Accepted\n"); continue; } if(mido!=0&&mido*preo==aftero){ printf("Accepted\n"); continue; } else{ printf("Wrong Answer\n"); continue; } } else{ printf("Wrong Answer\n"); continue; } // if(preo==mido==aftero==0){ // printf("Wrong Answer\n"); // continue; // } // if(mido==1&&preo==aftero){ // printf("Accepted\n"); // continue; // } // if(preo==0&&aftero==0&&mido>=0){ // printf("Accepted\n"); // continue; // } // if(preo==0&&aftero!=0){ // printf("Wrong Answer\n"); // continue; // } // int num=aftero/preo; // if(num*preo==aftero&&mido==num){ // printf("Accepted\n"); // continue; // } // printf("Wrong Answer\n"); } return 0; }