C : 花园小学运动会

C语言题库

共 1057字,需浏览 3分钟

 ·

2021-03-27 00:18

1781: 花园小学运动会


内存限制:128 MB时间限制:1 S标准输入输出




题目描述

花园小学正在进行紧张刺激的运动会!每个班级都有一个独一无二的数字。现在正是 10000 米短跑比赛的现场。许多班级的运动员们已经纷纷准备就绪。正等一声令下,开始比赛。10000 米短跑比赛有一个传统,就是每当一个运动员跑到终点时,都会大声喊出他的班级号,来显示一种荣耀。现在,给出 n 个数,代表通过终点的 n 个人所喊出的班级号,你需要统计有多少班级在这场比赛中参赛了正好 k 个人,计算出在这些班级中,获得第一名的选手是哪个班级的。输出他所在的班级号。
假设每一个参加比赛的人都通过了终点。


输入格式

每组数据第一行,n,k。代表有 n 个人,要求保留 k 个人的班。(n,k<=1000000)
接下来一行 n 个数,依次代表选手通过终点所喊出的班级号(a[1]代表第一个通过终点的选手喊出的班级号,依次类推)。(a[i]<=1000000)
处理到文件结束。


输出格式

每行一个数。
若没有班级通过 k 人,输出-1。


输入样例 复制

5 2

4 2 3 2 3



输出样例 复制

2


代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1000005;
int n,m,t;
int arr[maxn]={0};
int num[maxn]={0};
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(num,0,sizeof(num));
for(int i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
num[arr[i]]++;
}
int flag=0;
for(int i=1;i<=n;i++)
{
if(num[arr[i]]==m)
{
printf("%d\n",arr[i]);
flag=1;
break;
}
}
if(!flag)
printf("-1\n");
}
return 0;
}


浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报