P1042,和测试数据输出一样,为什么判错?
  • 板块题目总版
  • 楼主davis_sp
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/4/22 15:52
  • 上次更新2023/11/5 00:14:59
查看原帖
P1042,和测试数据输出一样,为什么判错?
511276
davis_sp楼主2021/4/22 15:52

模拟乒乓球的题,100行的测试数据啊,我一条条输入进去,结果对下来,和答案一样啊,为什么给我WA和RE?

#include <iostream>

using namespace std;

static string pk_record[1000];

int main() {

    int row_count = 0;
    while (1) {
        getline(cin, pk_record[row_count++]);
        int idx = pk_record[row_count - 1].find("E");
        if(idx != -1) {
            pk_record[row_count - 1] = pk_record[row_count - 1].substr(0,idx);
            break;
        }
    }
    while (row_count!=0) {
        if(pk_record[row_count - 1].length()==0)
            row_count--;
        else {
            break;
        }
    }
    int Wscore11,Lscore11;
    Wscore11 = Lscore11 = 0;
    if (row_count==0)
        cout << "0:0" << endl;
    for (int i = 0; i < row_count; i++) {
        for (int j = 0; j < pk_record[i].length(); j++) {
            if (pk_record[i][j] == 'W')
                Wscore11++;
            else {
                Lscore11++;
            }
            if((Wscore11-Lscore11>=2 && Wscore11>=11) || (Lscore11-Wscore11>=2 && Lscore11>=11)) {  // 完成一局
                cout << Wscore11 << ":" << Lscore11 << endl;
                Wscore11 = Lscore11 = 0;
            }
            if(i==row_count-1 && j==pk_record[i].length()-1) {  // 最后未完成的局
                cout << Wscore11 << ":" << Lscore11 << endl;
            }
        }
    }
    cout << endl;
    int Wscore21,Lscore21;
    Wscore21 = Lscore21 = 0;
    if (row_count==0)
        cout << "0:0" << endl;
    for (int i = 0; i < row_count; i++) {
        for (int j = 0; j < pk_record[i].length(); j++) {
            if (pk_record[i][j] == 'W')
                Wscore21++;
            else {
                Lscore21++;
            }
            if((Wscore21-Lscore21>=2 && Wscore21>=21) || (Lscore21-Wscore21>=2 && Lscore21>=21)) {  // 完成一局
                cout << Wscore21 << ":" << Lscore21 << endl;
                Wscore21 = Lscore21 = 0;
            }
            if(i==row_count-1 && j==pk_record[i].length()-1) {  // 最后未完成的局
                cout << Wscore21 << ":" << Lscore21 << endl;
            }
        }
    }
    return 0;
}

2021/4/22 15:52
加载中...