#include <iostream>
#include <string>
using namespace std;
int a[128]={0};
void func()
{
string s;
while(cin>>s)
{
int o1,o2,o3;
o1=o2=o3=0;
a['z']=0;
a['o']=0;
a['j']=0;
for(int i=0;i<s.size();i++)
{
char c=s[i];
a[c]++;
if(c=='z'&&a['z']==1)// 第一次z
{
o1=a['o'];
}else
if(c=='j'&&a['j']==1)
{
o2=a['o']-o1;
}
}
o3=a['o']-o1-o2;
bool flag=false;
// z j ==1
int countz=a['z'];
int countj=a['j'];
if(countz==1&&countj==1&&o2>=1&&o1*o2==o3)
flag=true;
/* else{
// rule 1 rule 2
if(o1==o3&&o2==1)
flag=true;
// rule 3
// azbojac to azbjc
// o1=a o2=b+1 o3=o1+x
// o3>=o1 o2>=1
// rule 3
else if(o3==o1&&o2>=1)flag=true;
else if(o3>o1&&o2>=2)flag=true;
}
*/
if(flag)cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
void func1()
{
char str[1001];
while(cin>>str)
{
char *p=str;
int a,b,c;
a=b=c=0;
int o,z,j;
o=z=j=0;
while(*p!='\0')
{
if(*p=='o') o++;
else if(*p=='z'){
z++;
a=o;
}else if(*p=='j'){// z first
j++;
b=o-a;
}
p++;
}
c=o-a-b;
if(z==1&&j==1&&b>0&&a*b==c)
cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
void func2()
{
char s[1001];
while(cin>>s)
{
bool flag=false;
int a,b,c;
a=b=c=0;
int o,z,j;
o=z=j=0;
int i=0;
while(s[i]=='o' && s[i]!='\0') {a++; i++;}
if(s[i]=='z')
{
++i;
while(s[i]=='o' &&s[i]!='\0') {b++; i++;}
if(s[i]=='j')
{
++i;
while(s[i]=='o' && s[i]!='\0') {c++; i++;}
if(s[i]=='\0'){
if(b>=1&&a*b==c)
flag=true;
}
}
}
if(flag)cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
int main(int argc, char *argv[])
{
//printf("Hello, world\n");
func2();
return 0;
}
func和func1都WA,估计某些用例通过不了……比如输入了zoj之外的字母,zj个数不只一次等等
func2按zoj出现次序一步步来,关键在于z左边o的个数a,zj之间o的个数b,j右边o的个数c存在关系a*b==c时即符合第三个规则
证明:因为第二条规则,azbjc的最初始情况就是azoja,
则azbojac=azoojaa
下一递推是azooojaaa
由数学归纳法得出a*b==c
-
题目描述:
-
对给定的字符串(只包含'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