import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
static class person{
int x;
int y;
int s;
int no;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int k=scanner.nextInt();
ArrayList<person> list=new ArrayList<>();
for (int i = 0; i < n; i++) {
person p=new person();
p.x=scanner.nextInt();
p.y=scanner.nextInt();
p.no=i+1;
p.s=p.x+2*p.y;
list.add(p);
}
list.sort((p1,p2)->{
if(p1.s!=p2.s)return p2.s-p1.s;
if(p1.y!=p2.y)return p2.y-p1.y;
return p1.no-p2.no;
});
PriorityQueue<Integer> queue=new PriorityQueue<>();
for (int i = 0; i < k; i++) {
queue.add(list.get(i).no);
}
for (int i = 0; i < k; i++) {
System.out.print(queue.poll()+" ");
}
}
}
后面装序号时不能使用集合后排序的方法,会有一个超时,所以我选择优先队列,默认从小到大



京公网安备 11010502036488号