为了图省事不自己写排序函数,就想着先用sort先排一次,然后剩下的K个就用bublle来排…没想到竟然TLE,本着将懒人精神发扬到底的信念,我定义了两个一模一样的结构体,分别重载了两个小于号然后用sort排序…尽管看起来有点蠢,但是还是过了……
这会突然想起来找最大值根本不需要排序,直接遍历一遍就好,看来我还是太蠢惹…
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 50000
struct cows{
int num;
int ta;
int tb;
};
bool operator < (cows a,cows b){
return a.ta>b.ta;
}
struct cowss{
int num;
int ta;
int tb;
};
bool operator < (cowss a,cowss b){
return a.tb>b.tb;
}
int N,K;
cows cow[maxn]={0};
cowss coww[maxn]={0};
int main(){
scanf("%d%d",&N,&K);
for(int i=1;i<=N;++i){
scanf("%d%d",&cow[i].ta,&cow[i].tb);
}
for(int i=1;i<=N;++i){
cow[i].num = i;
}
sort(cow+1,cow+1+N);
for(int i=1;i<=K;++i){
coww[i].num = cow[i].num;
coww[i].tb = cow[i].tb;
}
sort(coww+1,coww+1+K);
printf("%d\n",coww[1].num);
//system("pause");
return 0;
}