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

/*

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

*/

posted @ 2012-11-23 22:11  ♂咱說 ろ算  阅读(1157)  评论(0编辑  收藏  举报