HDU 3788 ZOJ问题

来源:互联网 发布:刺客信条大革命优化版 编辑:程序博客网 时间:2024/05/20 10:20

ZOJ问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4669    Accepted Submission(s): 1443


Problem Description
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。

是否AC的规则如下:
1. zoj能AC;
2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;
3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
 

Input
输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000;
 

Output
对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。
 

Sample Input
zojozojoozoojoooozoojoooozoojozojooooozojozojoooo
 

Sample Output
AcceptedAcceptedAcceptedAcceptedAcceptedAcceptedWrong AnswerWrong Answer
 
观察第二种和第三种情况,容易得出规律:z前面的o乘z和j中间的o等于j后面的o

#include<iostream>#include<cstdio>#include<cstring>using namespace std;char str[1010];int main(){//freopen("in.txt","r",stdin);while(~scanf("%s",str)){int len=strlen(str);int z,o,j;int cnt_z=0,cnt_o=0,cnt_j=0;for(int i=0;i<len;i++){if(str[i]=='z'){z=i;cnt_z++;}else if(str[i]=='o') cnt_o++;else{j=i;cnt_j++;}}if(cnt_z!=1||cnt_o==0||cnt_j!=1){cout<<"Wrong Answer"<<endl;}else{if(z*(j-z-1)==len-j-1){cout<<"Accepted"<<endl;}else cout<<"Wrong Answer"<<endl;}}}


原创粉丝点击