1. 程式人生 > >九度OJ 1006 ZOJ問題 (這題測試數據有問題)

九度OJ 1006 ZOJ問題 (這題測試數據有問題)

height Language col ans water ng- accepted panel sso

題目1006:ZOJ問題

時間限制:1 秒

內存限制:32 兆

特殊判題:

提交:15725

解決:2647

題目描寫敘述:
對給定的字符串(僅僅包括‘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。
輸出:
對於給定的字符串,假設能AC則請輸出字符串“Accepted”。否則請輸出“Wrong Answer”。
例子輸入:
zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo
例子輸出:
Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong Answer
實際上可以AC的代碼。得到的例子輸出卻是:

技術分享

#include<stdio.h>
#include<string.h>
char s[1001];
int main()
{
    int num1,num2,num3;
    char *p;
    while(scanf("%s",s)!=EOF)
    {
        num1 = num2 = num3 = 0;
        p = s;
        if( !strcmp("zoj",s) ) { printf("Accepted\n"); continue; }
        while( (*p)=='o' ) { num1++; p++; }
        if((*p) == 'z'){
            p++;
            while((*p) == 'o'){num2++; p++;}
            if((*p) == 'j') {
                p++;
                while((*p) == 'o') {num3++; p++;}
                if(!(*p) && num2>0 && num3==num1*num2) {printf("Accepted\n");continue;}
            }
        }
        printf("Wrong Answer\n");
    }
    return 0;
}
 
/**************************************************************
    Problem: 1006
    User: kirchhoff
    Language: C
    Result: Accepted
    Time:30 ms
    Memory:916 kb
****************************************************************/



九度OJ 1006 ZOJ問題 (這題測試數據有問題)