题目:
题意解析:
题解:
两个数组:
一个vector二维数组,用这个数组来记录2输出。在每次输出前给指定位置的一维数组排序,然后输出。
一个set数组,C++的set会自动排序,去重。用这个数组来记录3输出。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> t[200009];
set<int> k[200009];
int main() {
cin>>n>>m;
for(int i=0; i<m; i++) {
int a,b,c;
cin>>a>>b;
if(a==1) {
cin>>c;
t[c].push_back(b);
if(k[b].find(c)==k[b].end()) {
k[b].insert(c);
}
} else if(a==2) {
sort(t[b].begin(),t[b].end());
for(vector<int>::iterator j=t[b].begin(); j!=t[b].end(); j++)
cout<<*j<<" ";
cout<<endl;
} else {
for(set<int>::iterator j=k[b].begin(); j!=k[b].end(); j++)
cout<<*j<<" ";
cout<<endl;
}
}
return 0;
}