struct排序重载
作者:
Air1222
,
2024-10-02 22:49:10
,
所有人可见
,
阅读 5
//bool operator < (const C &w) const
{
返回true 就把当前元素排前面
false就排后面
}
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
struct C
{
int a;
int b;
int idex;
bool operator < (const C &w) const
{
if(a>w.a) return true;
else if(a<w.a) return false;
else
{
if(b>w.b) return true;
else if(b<w.b) return false;
else return idex<w.idex;
}
}
}g[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int a,b;
cin>>a>>b;
g[i].a=a;
g[i].b=b;
g[i].idex=i;
}
sort(g+1,g+1+n);
for(int i=1;i<=m;i++)
{
if(i!=m) cout<<g[i].idex<<" ";
else cout<<g[i].idex<<endl;
}
}
}