#include <iostream>
#include <vector>
#include <unordered_map>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    vector<int> votes(m);
    for (int i = 0; i < m; i++) {
        cin >> votes[i];
    }

    unordered_map<int, int> count;
    int maxCount = 0;
    int maxNum = 0;

    for (int i = 0; i < m; i++) {
        count[votes[i]]++;
        if (count[votes[i]] > maxCount) {
            maxCount = count[votes[i]];
            maxNum = votes[i];
        }
    }

    cout << maxNum << endl;

    return 0;
}

题目描述

小 T 和他的小伙伴们到 CZ 中学的创新实验班报到后的第一件事就是选班委,班主任 R 老师走上讲台宣布了选举办法,首先让全班 40 位同学依次上讲台做自我介绍,然后按照职位一个一个依次进行选举,先选班长,再选学习委员……,选举办法是每人投一票,谁 的票数最高就选谁担任这个职位,最后围棋高手小 W 颇具大将风范被选为班长,学神小 Z 当选为学习委员那是众望所归,小 S 则有天生一副好嗓子,不但歌唱得好,并且能将多种动物的叫声模仿得惟妙惟肖,因此当选为文体委员。

小 T 同学在本次选举中负责计票,他觉得手工计票太慢了,且容易出错,因此想请你编一个程序实现机器计票功能。这个程序要能实现以下功能:全班共有 n 个同学,依次用 1 到 n 编号,共有 m 个人(包括班主任和 任课老师等)参与了投票,每张选票上写有一个同学的编号,得票最多的同学当选。

输入格式

输入数据第一行包含两个用空格隔开的正整数 n 和 m,其中 n≤200,m≤2000。

第二行有 m 个用空格隔开的不超过 n 的正整数,表示这 m 张选票上所写的编号。

输出格式

输出得票最多的那个同学的编号。如果同时有两名以上同学得票最多,输出编号最小的那个同学的编号。

输入输出样例

样例 1

输入样例 复制 3 4 1 3 2 1 输出样例 复制 1

样例说明

全班共有 3 位同学,共有 4 人进行了投票,其中有 2 人选了 1 号同学,选 2 号和 3 号同学的都只有 1 人,最后 1 号同学得 2 票,2 号和 3 号同学各得 1 票,1 号同学得票最多, 当选班委。

数据范围与提示

20% 的数据满足: n≤3,m≤20

60% 的数据满足:n≤100,m≤500

70% 的数据满足:得票最多的同学是唯一的

100% 的数据满足:n≤200,m≤2000


原文地址: https://www.cveoy.top/t/topic/qr3b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录