题目:
为了公平公正地选举出学校本年度优秀教师,学校将会组织学生进行不记名投票, m 名参与投票学生需要将候选老师的编号写在投票卡上,编号 1~n。票数最多 者当选,请帮忙进行统计输出当选教师的编号。
【输入格式】 输入共 2 行:
第 1 行,2 个空格隔开的正整数 m, n,其中 m 表示投票的学生人数,n 表示候选教师的编号范围 1~n;
第 2 行,m 个用空格隔开的正整数,代表学生的投票教师编号。
【输出格式】 输出共 1 行:
为当选教师的编号,票数相同时输出较小的教师编号。
我的代码:
#include <bits/stdc++.h>
using namespace std;
int a[510];
int main()
{
// 定义,输入
int m, n;
cin >> m >> n;
// 输入m位学生的投票内容
for (int i = 1; i <= m; i++)
{
cin >> a[i];
}
sort(a + 1, a + m + 1);
int t = 1,id = 1,cnt = 0,max_cnt = 0;
for (int i = 1; i <= m; i++)
{
if (a[i] == t) cnt++;
else t++;
if (cnt >= max_cnt)
{
max_cnt = cnt;
id = t;
}
}
cout << id << endl;
return 0;
}