Dynamic Arrays and List - Vector II

1.3k 词

题目描述

For n dynamic arrays Ai (i=0,1,…,n−1), perform a sequence of the following operations: 

pushBack(t, x): Add element x at the end of At. 

dump(t): Print all elements in At. 

clear(t): Clear At. If At is empty, do nothing. 

Ai is a 0-origin array and it is empty in the initial state.

输入

The input is given in the following format. 

query1 

query2 

queryq 

Each query queryi is given by 0 t x or 1 t or 2 t where the first digits 0, 1 and 2 represent pushBack, dump and clear operations respectively.

  • 1≤n≤1,000
  • 1≤q≤500,000
  • −1,000,000,000≤x≤1,000,000,000

 The total number of elements printed by dump operations do not exceed 500,000

输出

For each dump operation, print elements of At a line. Separete adjacency elements by a space character (do not print the space after the last element). Note that, if the array is empty, an empty line should be printed.

样例输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
3 13
0 0 1
0 0 2
0 0 3
0 1 -1
0 2 4
0 2 5
1 0
1 1
1 2
2 1
1 0
1 1
1 2

样例输出

1
2
3
4
5
6
1 2 3
-1
4 5
1 2 3

4 5

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
using namespace std;
int main(){
int q, x, n, t;
cin >> n >> q;
vector<vector<int>> m(n);
char d;
for(int i=0;i<q;i++){
cin >> d >> t;
switch (d) {
case '0':
cin >> x;
m[t].push_back(x);
break;
case '1':
for (int ii = 0; ii < m[t].size(); ii++)
cout << m[t][ii] << " ";
cout << endl;
break;
default:
m[t].clear();
break;
}
}
return 0;
}