【sort-多关键字排序】魔术师的排名

Description

周程远是一个魔术团的团长,他的手下有N个魔术师,编号分别为1~N中的某一个正整数,对于每个人都有不同的编号,他的魔力值为Wi,道具魔力值为Vi。现在,他想知道他手下第k强的魔术师的编号。排名规则如下:魔力值大者在前;当他们的魔力值相同时,对他们道具的魔力值进行比较,大者在前;若魔力值及道具魔力值均相同,则编号小者在前。

Input

第1行用空格隔开的2个正整数N,k,第2行至第N+1行每行三个整数,Ai,Wi,Vi,分别表示第i个人的编号,魔力值和道具魔力值。

Output

输出第k强的人的编号。

Sample Input 1 

5 3
1 3 4  
2 3 7
3 1 10
5 2 99
4 3 2

Sample Output 1

4

Hint

40%的数据满足1<=k<=N<=10^3; 

100%的数据满足1<=k<=N<=10^5; 

40%的数据满足0<=W,V<=10^9; 

100%的数据满足-10^18<=W,V<=10^18;


my code:

#include <iostream>
#include <algorithm>
using namespace std;
class pep{
	public:
	long long ai;
	long long wi;
	long long vi;	
};
bool cmp(pep a,pep b)
{
	if(a.wi>b.wi)return true;
	else if(a.wi==b.wi&&a.vi>b.vi)return true;
	else if(a.wi==b.wi&&a.vi==b.vi&&a.ai<b.ai)return true;
	else return false;
}
int main()
{
	long long n,k;
	cin>>n>>k;
	pep m[n];
	for(int i=0;i<n;i++)cin>>m[i].ai>>m[i].wi>>m[i].vi;
	sort(m,m+n,cmp);
cout<<m[k-1].ai;
  return 0;
}


posted @ 2018-05-13 10:28  SMALLff  阅读(443)  评论(0编辑  收藏  举报