top1编程
← 返回题目
题解

【入门】选班委

1 条题解

  • 0
    @ 2026-7-29 0:18:52
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {
        int n, m;
        // 输入同学总数n和投票数m
        cin >> n >> m;
    
        // 初始化票数数组,下标0不用(同学编号从1到n),初始得票为0
        vector<int> votes(n + 1, 0);
    
        // 统计每张选票的得票
        for (int i = 0; i < m; ++i) {
            int num;
            cin >> num;
            votes[num]++; // 对应编号的同学得票+1
        }
    
        // 找得票最多的编号(票数相同选编号小的)
        int max_count = 0;   // 记录最高票数
        int result = 0;      // 记录当选的编号
        for (int i = 1; i <= n; ++i) {
            // 若当前票数更高,更新最高票和编号
            if (votes[i] > max_count) {
                max_count = votes[i];
                result = i;
            }
            // 票数相同但编号更小的情况,无需处理(因为按顺序遍历,先遇到的编号更小)
        }
    
        // 输出结果
        cout << result << endl;
    
        return 0;
    }
    
    • 1