1 条题解

  • 0
    @ 2026-7-28 14:49:56

    教室座位成绩统计 题解

    思路

    按从上到下、从左到右的顺序扫描二维结构体数组。只有遇到严格更高的成绩时才更新,因此并列时会自然保留行号、列号更小的学生。

    参考代码

    #include <bits/stdc++.h>
    using namespace std;
    
    struct Student {
        string name;
        int score;
    };
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int n, m;
        cin >> n >> m;
        vector<vector<Student>> seat(n, vector<Student>(m));
    
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                cin >> seat[i][j].name >> seat[i][j].score;
            }
        }
    
        for (int i = 0; i < n; ++i) {
            int sum = 0;
            for (int j = 0; j < m; ++j) sum += seat[i][j].score;
            cout << sum << '\n';
        }
    
        int bestRow = 0, bestCol = 0;
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                if (seat[i][j].score > seat[bestRow][bestCol].score) {
                    bestRow = i;
                    bestCol = j;
                }
            }
        }
    
        cout << bestRow + 1 << ' ' << bestCol + 1 << ' '
             << seat[bestRow][bestCol].name << ' '
             << seat[bestRow][bestCol].score << '\n';
        return 0;
    }
    
    • 1

    信息

    ID
    5086
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    1
    已通过
    1
    上传者