题目大意:
给N个cows,给一个数K,第一轮得票最多的K个cows进入下一轮,然后得票最多的成为主席
接下来N行给出每个cow每轮得票数
解题思路:
先按第一轮投票排个序,在按第二轮投票排个序,取第一个即可
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct niu{
int num;
long long fir;
long long sec;
}cow[50002];
int cmp1(const void *a,const void *b)
{
return (*(niu *)b).fir-(*(niu *)a).fir;
}
int cmp2(const void *a,const void *b)
{
return (*(niu *)b).sec-(*(niu *)a).sec;
}
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
memset(cow,0,sizeof(cow));
for(int i=1;i<=n;i++)
{
long long a,b;
scanf("%ld%ld",&a,&b);
cow[i].num=i;cow[i].fir=a;cow[i].sec=b;
}
qsort(cow+1,n,sizeof(cow[1]),cmp1);
qsort(cow+1,k,sizeof(cow[1]),cmp2);
printf("%d\n",cow[1].num);
}
return 0;
}