求助大佬,本地能通过,提交全WA,下载了样例本地正确,平台错误

P1320 压缩技术(续集版)

Eyjafja1la @ 2022-03-19 20:17:00

int main() {
    char ch, s[40000];
    int i = 0, j;
    while (scanf("%c", &ch) != EOF) {
        if (ch != '\n')
            s[i++] = ch;
    }
    int n = sqrt(i), flag = 0, cnt = 0;
    printf("%d", n);
    for (j = 0; j < i; ++j) {
        if ((s[j]-'0') ^ flag == 0) {
            ++cnt;
        }
        else {
            printf(" %d", cnt);
            cnt = 1;
            flag = flag ^ 1;
        }
    }
    printf(" %d", cnt);
    return 0;
}
附一组数据
11111
00100
11111
00100
11111
本地结果 5 0 5 2 1 2 5 2 1 2 5
洛谷结果 5 0 6 2 1 2 5 2 1 2 5

by Qing_fy @ 2022-03-19 20:26:44

试试把 if (ch != '\n') 改成 if (isdigit(ch)) ?可能数据没有那么严密


by Qing_fy @ 2022-03-19 20:27:31

@Eyjafja1la AC了。


by Qing_fy @ 2022-03-19 20:28:23

@Eyjafja1la 如果把你的数据后面加一个空格,你的程序就WA了。


by Eyjafja1la @ 2022-03-19 20:42:45

@Qing_fy OK了 谢谢大佬!!!


|