您的位置:首页 > 其它

对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。

2012-11-23 22:11 597 查看
/*

对给定的字符串(只包含'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;

Output

对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。

*/

#include<iostream>

#include<string.h>

using namespace std;

int main()

{

char string[1000];

char *p,*q,*l;

int i,num1=0,num2=0,num3=0;

bool tag=false;

while(cin>>string)

{

if(strcmp(string,"zoj")==0)

cout<<"Accepted"<<endl;

else if(strstr(string,"zoj")!=NULL)

{

p=strstr(string,"zoj");

for(i=0;i<strlen(string);i++)

{

if((string[i]=='o')&&(&string[i]<p))

num1++;

else if(&string[i]==p)

i=i+2;

else if((string[i]=='o')&&(&string[i]>(p+2)))

num2++;

else

{

cout<<"Wrong Answer"<<endl;

tag=true;

break;

}

}

if(tag==false)

{

if(num1==num2)

cout<<"Accepted"<<endl;

else

cout<<"Wrong Answer"<<endl;

}

else

tag=false;

num1=num2=0;

}

else if((strstr(string,"z")!=NULL)&&(strstr(string,"oj")!=NULL))

{

p=strstr(string,"z");

q=strstr(string,"oj");

num3=q-p;

for(i=0;i<strlen(string);i++)

{

if((string[i]=='o')&&(&string[i]<p))

num1++;

else if(&string[i]==p)

{

l=p;

for(l++;l<=q;l++)

{

if(*l!='o')

{

cout<<"Wrong Answer"<<endl;

break;

}

}

i=i+num3+1;

}

else if((string[i]=='o')&&(&string[i]>(p+1+num3)))

num2++;

else

{

cout<<"Wrong Answer"<<endl;

tag=true;

break;

}

}

if(tag==false)

{

if(num3*num1==num2)

cout<<"Accepted"<<endl;

else

cout<<"Wrong Answer"<<endl;

}

else

tag=false;

num1=num2=num3=0;

}

else

cout<<"Wrong Answer"<<endl;

}

return 0;

}

/*

zoj

ozojo

ozoojoo

oozoojoooo

zooj

ozojo

oooozojo

zojoooo

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐