hdu 3788 ZOJ问题

来源:互联网 发布:淘宝上如何申请售后 编辑:程序博客网 时间:2024/05/18 00:18
A - ZOJ问题
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Submit
 
Status
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 

 


开始把三个情况分开,写三个外函数,一直wrong,然后发现都可以分到3中;

注意:情况3可以循环开始。

谁能帮忙看些分开为什么错。。。。。。。。。



wrong代码:#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int lenght;int bei[1010];char ch[1010];bool AC1(){if (lenght==3&&ch[0]=='z'&&ch[1]=='o'&&ch[2]=='j')return true;else return false;}/*bool AC4(){bool pp=true;for (int i=0;i<lenght;i++){if (i==0){if (ch[i]!='z'){pp=false;break;}}else if (i==(lenght-1)){if (ch[i]!='j'){pp=false;break;}}else if (ch[i]!='o'){pp=false;break;}}return pp;}*/bool AC2(){bool pp=true;if (lenght%2==0) pp=false;else{    for (int i=0;i<lenght;i++)    {    if (i==(lenght/2-1))    {    if (ch[i]!='z')        pp=false;break;}    else if (i==(lenght/2+1))    {    if (ch[i]!='j')    {    pp=false;    break;}}    else if (ch[i]!='o'){pp=false;break;}    }}return pp;}bool AC3(){bool pp=true;int sa=0,sb=0,aa=0,bb=0;for (int i=0;i<lenght;i++){if (ch[i]=='z'){if (sa){pp=false;break;}sa++;    aa=i;}else if (ch[i]=='j'){if (sb){pp=false;break;}sb++;bb=i;}}int kkk=bb-aa-1;if (kkk<1||(lenght-1-bb)!=aa*kkk)pp=false;return pp;}int main(){int i,j=2;/*memset(bei,0,sizeof(bei));for (i=2;i<15;i++){if (j>1000) break;bei[j]=i;j*=2;}*/while (~scanf("%s",ch)){lenght=strlen(ch);if (AC1())printf("Accepted\n");else if (AC2())printf("Accepted\n");else if (AC3())printf("Accepted\n");/*else if (AC4())printf("Accepted\n");*/elseprintf("Wrong Answer\n");}return 0;}



AC代码:
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int lenght;int bei[1010];char ch[1010];bool AC3(){bool pp=true;int sa=0,sb=0,aa=0,bb=0;for (int i=0;i<lenght;i++){if (ch[i]=='z'){if (sa){pp=false;break;}sa++;    aa=i;}else if (ch[i]=='j'){if (sb){pp=false;break;}sb++;bb=i;}}int kkk=bb-aa-1;int qian=aa;int huo=lenght-bb-1;if (pp&&kkk>0&&qian*kkk==huo)return true;elsereturn false;}int main(){int i,j=2;while (~scanf("%s",ch)){lenght=strlen(ch);if (AC3())printf("Accepted\n");elseprintf("Wrong Answer\n");}return 0;}


0 0
原创粉丝点击