问题 B: 锯齿矩阵
题目描述
锯齿矩阵是指每一行包含的元素个数不相同的矩阵,比如:
3 5 2 6 1 2 3 4 1 6 2 7
读入若干对整数(x,y) ,表示在第x行的末尾加上一个元素y。输出最终的锯齿数组。初始时矩阵为空。
输入
输入会有 多组测试点 ,组数 T 在 1~3范围内。
每组测试数据的第一行输入两个整数n,m(1≤n,m≤10000),其中n表示锯齿数组的行数,m表示插入的元素总数。
接下来一共m行,每行两个整数x,y(1≤x≤n,0≤y≤10000) ,表示在第x行的末尾插入一个元素y。
输出
输出 n*T 行。 每行若干个用空格分隔的整数。如果某行没有任何元素,则输出一个空行。
样例输入
3 12 1 3 2 2 2 3 2 4 3 1 3 6 1 5 1 2 1 6 3 2 3 7 1 1 3 3 1 1 1 2 3 3
样例输出
3 5 2 6 1 2 3 4 1 6 2 7 1 2 3
代码:
#include<bits/stdc++.h>
using
namespace
std;
int
main(){
int
n,m;
while
(cin>>n>>m){
vector<
int
> v[10001];
for
(
int
i=1;i<=m;i++){
int
x,y;
cin>>x>>y;
v[x].push_back(y);
}
for
(
int
i=1;i<=n;i++){
int
len=v[i].size();
for
(
int
j=0;j<=len-1;j++){
cout<<v[i][j]<<
" "
;
}
cout<<
"\n"
;
}
}
return
0;
}