思路:
用二维向量存储,且先排序后存储
代码:
#include<bits/stdc++.h>
using namespace std;
vector< vector<int> > v;
int t,n,m;
struct act{
int a1,a2;
};
bool cmp(act a,act b){
if(a.a1!=b.a1){
return a.a1<b.a1;
}
return a.a2<b.a2;
}
act a[100005];
int main(){
scanf("%d",&t);
for(int k = 1;k<=t;k++){
scanf("%d %d",&n,&m);
v.clear();
v.resize(n);
for(int i = 1;i<=m;i++){
scanf("%d %d",&a[i].a1,&a[i].a2);
}
sort(a+1,a+1+m,cmp);
int last=0;
for(int i = 1;i<=m;i++){
v[a[i].a1-1].push_back(a[i].a2);
}
for(int i = 0;i<v.size();i++){
for(int j = 0;j<v[i].size();j++){
cout<<v[i][j]<<" ";
}
cout<<endl;
}
}
return 0;
}