码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 3788 zoj问题

时间:2015-07-25 21:18:52      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

                 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 3788 zoj问题

标签:

原文地址:http://www.cnblogs.com/homura/p/4676563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!