首页 > 代码库 > hdu-3788-ZOJ问题

hdu-3788-ZOJ问题

ZOJ问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2905    Accepted Submission(s): 878


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
 

Source
浙大计算机研究生复试上机考试-2010年  

#include<stdio.h> 
#include<string.h>
int main()
{
    char str[1010];
    while(~scanf("%s",str))
    {
        int len=strlen(str),i,j,k,a,b,c,p1,p2;
        i=p1=p2=a=b=c=0;
        while(str[i]=='o')
        a++,i++;
        j=len-1;
        while(str[j]=='o')
        c++,j--;
        for(k=i;k<=j;++k)
        {
            if(str[k]=='z')
            p1++;
            if(str[k]=='o')
            b++;
            if(str[k]=='j')
            p2++;
        }
        if(str[i]=='z'&&str[j]=='j')
        {
            if(b>0&&p1==1&&p2==1&&a*b==c)
            printf("Accepted\n");
            else
            printf("Wrong Answer\n");
        }
        else
        printf("Wrong Answer\n");
    }
    return 0;
}



hdu-3788-ZOJ问题