九度oj 1006

题目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 ;
}

这个题看似简单,但容易做错

上一篇:[Web 前端 ] 五大WEB主流浏览器及四大内核


下一篇:Linux系统安装和传文件到Linux系统