-
对给定的字符串(只包含'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
-
题目描述:
-
输入:
-
输出:
-
样例输入:
-
样例输出:
只要满足a*b==c&&b!=0就好
但是有一些小细节,
1.z要在j的前面
2.z和j的个数必须为1
3.出现除了zoj三个以外的字符要处理
代码也不想修改了,将就看吧
#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
char s[1000+10];
while(cin>>s){
int a=0,b=0,c=0;
int z=0,o=0,j=0,fz_z=0,q=0,fz_j=0;
for(int i=0;i<strlen(s);i++){
if(!(s[i]=='z'||s[i]=='o'||s[i]=='j'))
q=1;
if(s[i]=='z')
a=i,z++,fz_z=i;
if(s[i]=='j'){
b=i-fz_z-1;
fz_j=i;
j++;
c=strlen(s)-i-1;
}
}
if(q){
cout<<"Wrong Answer"<<endl;
continue;
}
if(z>1||j>1||z==0||j==0){
cout<<"Wrong Answer"<<endl;
}
else{
if(a*b==c&&b!=0&&fz_j>fz_z)
cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
return 0;
}