https://codeforces.com/problemset/problem/2023/A
经典贪心
先根据每一个组中较小的那个升序,如果相同比较大的那个升序排
#include<bits/stdc++.h>
using namespace std;
#define ll long long
using namespace std;
struct node
{
int x;
int y;
}a[200006];
bool cmp(node m,node n)
{
if(min(m.x,m.y)==min(n.x,n.y)) return max(m.x,m.y)<max(n.x,n.y);
else return min(m.x,m.y)<min(n.x,n.y);
}
void solve()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i].x>>a[i].y;
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
{
cout<<a[i].x<<" "<<a[i].y<<" ";
}cout<<endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll t;
cin>>t;
while(t--)
{
solve();
}
return 0;
}