题目描述

结构体排序即可,排序两次
数据量较大需要使用scanf,使用cin会tle
#include<cstdio>
#include<algorithm>
using namespace std;
struct cow{
int first;
int second;
int index;
};
bool com1(const cow& a,const cow& b){
return a.first>b.first;
}
bool com2(const cow&a,const cow& b){
return a.second>b.second;
}
cow c[50005];
int main(){
int n,k;
scanf("%d %d",&n,&k);
for(int i=0;i<n;i++){
scanf("%d %d",&c[i].first,&c[i].second);
c[i].index=i+1;
}
sort(c,c+n,com1);
sort(c,c+k,com2);
printf("%d\n",c[0].index);
}
本文介绍了一种通过两次结构体排序解决特定问题的方法。首先按照结构体中的第一个元素进行排序,然后对前k个元素按第二个元素进行排序,并输出首个元素的原始索引。为避免超时错误,文中强调了在处理大数据量时使用scanf而非cin的重要性。
359

被折叠的 条评论
为什么被折叠?



