题目1006:ZOJ问题
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:20252
解决:3544
- 题目描述:
-
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。
是否AC的规则如下: 1. zoj能AC; 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空; 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
- 输入:
-
输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000。
- 输出:
-
对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。
- 样例输入:
-
zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo
- 样例输出:
-
Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong Answer#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string> char s[]; int main(int argc, char const *argv[]){
//freopen("input.txt","r",stdin);
while(scanf("%s",s) != EOF) {
int a,b,c;
a = , b = , c = ;
int state = ;
for(int i = ; i < strlen(s); i++){
if(state == && s[i] == 'o') {
a++;
}
else if(state == && s[i] == 'z') {
state = ;
}
else if(state == && s[i] == 'j') {
break;
}
else if(state == && s[i] == 'o') {
b++;
state = ;
}
else if(state == && s[i] == 'z') {
break;
}
else if(state == && s[i] == 'j') {
break;
}
else if(state == && s[i] == 'o') {
b++;
}
else if(state == && s[i] == 'j') {
state = ;
}
else if(state == && s[i] == 'z') {
break;
}
else if(state == && s[i] == 'o') {
c++;
}
else if(state == && s[i] == 'z') {
state = ;
}
else if(state == && s[i] == 'j') {
state = ;
}
} if(c == a * b && state == ) {
printf("%s\n","Accepted");
}
else {
printf("%s\n","Wrong Answer");
}
}
return ;
}这个题看似简单,但容易做错