View Code of Problem 5

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>
 
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn=100005;
 
struct Fruit{
    int ord,ap,pr;
};
Fruit a[maxn];
bool cmp(Fruit a,Fruit b){
    if(a.ap!=b.ap)return a.ap>b.ap;
    return a.pr>b.pr;
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        int n,m;
        cin>>n>>m;
        for(int i=0;i<n;++i){
            cin>>a[i].ap>>a[i].pr;
            a[i].ord=i+1;
        }
        stable_sort(a,a+n,cmp);
        for(int i=0;i<m;++i){
            cout<<a[i].ord;
            if(i!=m-1)cout<<" ";
        }
        cout<<endl;
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 5