问题描述
yhf有 个桶,每个桶里都装着一些数字(一个或多个),所有的数字总共有 个。这天,lzh把yhf所有的桶全打翻了,数字洒了一地!所幸,每个数字都有它所在的桶的标记。yhf希望恢复所有的桶,但是他还要刷考研题目,于是他拜托你来完成这个任务。
由于yhf能在一秒内完成一套考研数学题,因此他希望你的程序能在一秒内得出结果。
输入格式
第一行输入两个整数 ,第二行到第 行,每行两个整数 ,分别表示这个数字和它所在的桶。
保证每个桶至少含有一个数字。
输出格式
输出 行,若第 个桶含有 个数字,则第 行输出 个整数,表示这个桶内的数字。注意:输出每个桶的数字时应按升序排序输出。
样例输入
2 5
3 1
2 2
2 1
3 2
1 2
样例输出
2 3
1 2 3
评测用例规模与约定
对于60%的数据,
对于100%的数据,
#include<bits/stdc++.h>
using namespace std;
unordered_map<int, vector<int>> m;//比map快
int main(){
int n, m0, x, t;
cin >> n >> m0;
for (int i = 0; i < m0;++i){
scanf("%d %d", &x, &t);
m[t].emplace_back(x);
}
for (int i = 1; i <= n;++i){
vector<int> &v = m[i];
sort(v.begin(), v.end());
for(auto&i:v){
printf("%d ", i);
}
printf("\n");
}
return 0;
}