【蓝桥杯】打印锯齿矩阵

题目

锯齿矩阵是指每一行包含的元素个数不相同的矩阵,比如:

3 5 2 6 1
2 3 4
1 6 2 7

读入若干对整数 ( x , y ) (x,y) ,表示在第 x x 行的末尾加上一个元素 y y

输出最终的锯齿数组。初始时矩阵为空。

输入格式

第一行输入两个整数 n , m ( 1 n , m 10000 ) n,m(1 \leq n,m \leq 10000) ,其中 n n 表示锯齿数组的行数, m m 表示插入的元素总数。

接下来一共 m m 行,每行两个整数 x , y ( 1 x n , 0 y 10000 ) x,y(1 \leq x \leq n, 0 \leq y \leq 10000) ,表示在第 x x 行的末尾插入一个元素 y y

输出格式

一共输出 n n 行,每行若干个用空格分隔的整数。

如果某行没有任何元素,则输出一个空行。

样例输入

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 5 2 6 1

2 3 4

1 6 2 7

题解

动态数组的基本用法

#include<iostream>
#include<algorithm>
#include<vector> 
using namespace std;
int main(){
	vector<int> v[10005];
	int n,m;
	cin>>n>>m;
	int row,t;
	for(int i=1;i<=m;i++){
		cin>>row>>t;
		v[row].push_back(t);
	}
	for(int i=1;i<=n;i++){
		if(v[i].size()){
			cout<<v[i][0];
			for(int j=1;j<v[i].size();j++)
				cout<<" "<<v[i][j];
		}
		cout<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/86552315