HDU 3788 zoj问题

                 ZOJ问题



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

是否AC的规则如下:
1. zoj能AC;
2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;
3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
 

 

Input
输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000;
 

 

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

 

Sample Input
zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo
 

 

Sample Output
Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong Answer
 
就是前面的o的个数乘以中间o的个数等于后面o的个数,并保证o的个数不为0且"z","j"的个数只有一个.
 
代码:
 1 #include<cstdio>

 2 #include<cstring>

 3 using namespace std;

 4 

 5 int main()

 6 {

 7     char s[1005];

 8     int i,j;

 9     int count1,count2,count3;

10     while(scanf("%s",s)!=EOF)

11     {

12         count3=count1=count2=0;

13         int len=strlen(s);

14         for(i=0;i<len;i++)

15         if(s[i]=='z')count1++;

16         else if(s[i]=='j')count2++;

17         else count3++;

18         if(count1!=1||count2!=1||count3==0)

19         {

20             printf("Wrong Answer\n");

21             continue;

22         }

23         for(i=0;i<len;i++)

24         if(s[i]=='z')break;

25         for(j=len-1;j>=0;j--)

26         if(s[j]=='j')break;

27         if(i*(j-i-1)==len-j-1)

28         printf("Accepted\n");

29         else

30         printf("Wrong Answer\n");

31     }

32     return 0;

33 }

 

 

你可能感兴趣的:(HDU)