1 条题解

  • 1
    @ 2026-9-7 18:04:24
    #include <vector>
    using namespace std;
    
    int main()
    {
        int n;
        while(cin >> n && n != 0)
        {
            vector<vector<int>> mat(n, vector<int>(n));
            for(int i = 0; i < n; ++i)
            {
                for(int j = 0; j < n; ++j)
                {
                    cin >> mat[i][j];
                }
            }
    
            vector<int> row_sum(n,0);
            vector<int> col_sum(n,0);
    
            // 计算每行、每列和
            for(int i = 0; i < n; ++i)
            {
                for(int j = 0; j < n; ++j)
                {
                    row_sum[i] += mat[i][j];
                    col_sum[j] += mat[i][j];
                }
            }
    
            int bad_row = -1, bad_col = -1;
            int cnt_bad_r = 0, cnt_bad_c = 0;
            for(int i = 0; i < n; ++i)
            {
                if(row_sum[i] % 2 != 0)
                {
                    cnt_bad_r++;
                    bad_row = i;
                }
            }
            for(int j = 0; j < n; ++j)
            {
                if(col_sum[j] % 2 != 0)
                {
                    cnt_bad_c++;
                    bad_col = j;
                }
            }
    
            if(cnt_bad_r == 0 && cnt_bad_c == 0)
            {
                cout << "OK" << endl;
            }
            else if(cnt_bad_r == 1 && cnt_bad_c == 1)
            {
                // 题目行号列号从1开始
                cout << "Change bit (" << bad_row+1 << "," << bad_col+1 << ")" << endl;
            }
            else
            {
                cout << "Corrupt" << endl;
            }
        }
        return 0;
    }
    
    
    
    • 1

    信息

    ID
    1039
    时间
    1000ms
    内存
    32MiB
    难度
    8
    标签
    递交数
    17
    已通过
    6
    上传者