#include<bits/stdc++.h> using namespace std; struct furit{ int apple; int pear; int p; }fu[100010]; bool cmp(furit a, furit b){ // if(a.apple!=b.apple) return a.apple>b.apple; // else if(a.pear!=a.pear) return a.pear>a.pear; // else return a.p<b.p; if(a.apple==b.apple) return a.pear>b.pear; else return a.apple>b.apple; } int main (){ int t, n, m; scanf("%d", &t); while(t--){ scanf("%d%d", &n, &m); for(int i = 0;i < n;i++){ scanf("%d%d", &fu[i].apple, &fu[i].pear); fu[i].p = i+1; } sort(fu, fu+n, cmp); for(int i = 0;i < m;i++){ if(i>0) printf(" "); printf("%d", fu[i].p); } printf("\n"); } return 0; } |
Double click to view unformatted code.