题目描述:
今有 N个数组,初始时,N个数组均为空。共有 M次操作,
每次在第 X 个数组中加入数字 Y。
问最终各数组中有多少数,并将它们排序输出。
比如,输入如下数据:
3 5
1 3
1 2
1 1
2 1
3 1
表示有 3 个数组,共有 5次操作,
分别向第 1个数组存入 3,第 1个数组存入 2 ,第 1个数组存入 1,第 2个数组存入 1,第 3 个数组存入1。
输出如下:
3 1 2 3
1 1
1 1
第 1 行表示:第 1 个数组中有 3个数,排序结果为1 2 3;
第 2 行表示:第 2 个数组中有 1 个数,排序结果为 1;
第 3 行表示:第 3 个数组中有 1 个数,排序结果为 1;
解答 [个人所写]:
#include<bits/stdc++.h>
using namespace std;
vector<int> a[100000];
int main()
{
int n,m,x,y;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>x>>y;
a[x-1].push_back(y);
}
for(int i=0;i<n;i++)
{
cout<<a[i].size()<<" ";
sort(a[i].begin(),a[i].end());
for(int j=0;j<a[i].size();j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
I第一次发表文章较短,后续会写题目的解析和思考过程ψ(*`ー´)ψ
制作不易,点个赞呗~~