社区讨论

70分,但wa,洛谷的在线ide也过了

P1320压缩技术(续集版)参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo15qbp2
此快照首次捕获于
2023/10/22 15:38
2 年前
此快照最后确认于
2023/11/02 15:12
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
char c;
int tot, n, num, n_num, tot1;
bool first, firch, is_zero;
vector<int> ans;
int main()
{
    while (cin.get(c))
    {
        if (!firch)
        {
            if (c == '0')
            {
                is_zero = true;
            }
            else
            {
                is_zero = false;
                ans.push_back(0);
            }
            firch = true;
        }
        if (c == '0')
        {
            if (is_zero)
            {
                num++;
            }
            else
            {
                ans.push_back(num);
                num = 1;
                is_zero = true;
            }
        }
        else if (c == '1')
        {
            if (!is_zero)
            {
                num++;
            }
            else
            {
                ans.push_back(num);
                num = 1;
                is_zero = false;
            }
        }
        if (!first)
        {
            tot++;
            if (c == '\n' || c == '\r')
            {
                n = tot - 1;
                first = true;
                n_num = 1;
                continue;
            }
        }
        if (first)
        {
            if (n_num == n - 1)
            {
                tot1++;
            }
            if (c == '\n' || c == '\r')
            {
                n_num++;
            }
            if (tot1 == n)
            {
                break;
            }
        }
    }
    ans.push_back(num);
    cout << n << " ";
    for (int i = 0; i < (int)ans.size(); i++)
    {
        cout << ans[i] << " ";
    }
    return 0;
}
测试点1一直wa,本地自测与洛谷在线ide测试与答案一样,想不明白,换行符也同时判断了\n与\r了(没改之前全wa)。翻了下之前的提问帖说不能用单个字符输入,是这么做不妥当吗
测试点1输入
CPP
11111
00100
11111
00100
11111

测试点1输出
CPP
5 0 5 2 1 2 5 2 1 2 5 

回复

1 条回复,欢迎继续交流。

正在加载回复...