请问Version 2.0为什么不可以?
查看原帖
请问Version 2.0为什么不可以?
678695
zuv1楼主2023/7/18 20:00

用Version1.0可以AC

但是用Version2.0只能过20%

测试的时候结果是一样的,想了很久不知道为什么呜呜呜,请各位佬帮我看看!

难道是getline不能用吗?但我感觉逻辑上没有问题呀(读到'E'之后就终止了)

#include <iostream>
using namespace std;

string table;
string tempStr;
bool flag = true;

void PrintRes(int score)
{
    int score_1 = 0;
    int score_2 = 0;
    for (char o : table)
    {
        if (max(score_1, score_2) >= score && abs(score_1 - score_2) >= 2)
        {
            printf("%d:%d\n", score_1, score_2);
            score_1 = 0;
            score_2 = 0;
        }

        if (o == 'W')
            score_1++;
        else
            score_2++;
    }
    printf("%d:%d\n", score_1, score_2);
    if (max(score_1, score_2) >= score && abs(score_1 - score_2) >= 2)
        printf("0:0\n");
}

int main()
{
    //==========Version 1.0=============//
    // char temp;
    // while (cin >> temp && temp != 'E')
    //     table.push_back(temp);

    //===========Version 2.0===========//
    while (1)
    {
        getline(cin, tempStr);
        if (tempStr.size() == 0)
            break;

        for (char o : tempStr)
            if (o != 'E')
                table.push_back(o);
            else
            {
                flag = false;
                break;
            }

        if (!flag)
            break;
    }

    PrintRes(11);
    printf("\n");
    PrintRes(21);

    return 0;
}
2023/7/18 20:00
加载中...