您的位置:首页 > 其它

HDU 3788 ZOJ问题

2017-09-28 11:12 387 查看


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

zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo

 

Sample Output

Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong 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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: