- 传统题1000ms128MiB
问题描述
小明的书房里有nn个书架,编号依次为1,2,3,…,n1,2,3,…,n。可是光有书架显得文化程度不够,于是他又买了mm本书。小明制定了一个计划,打算第ii本书放到第kiki个书架上。现在请你输出计划实施后,每个书架上会有哪些书。
输入格式
第一行有两个整数n(1<n≤104)n(1<n≤104),m(1<m≤105)m(1<m≤105),分别表示书架的数量和书的数量。
接下来有mm行,每行有一个整数ki(1≤ki≤n)ki(1≤ki≤n)表示第ii本书应该放在第kiki个书架上,还有一个字符串sisi(长度不超过20)表示书的名字。
输出格式
输出一共nn行。
每行首先输出两个整数id,cntid,cnt,表示书架的编号,以及该书架上一共有cntcnt本书,后面跟着cntcnt个书名(按照字典序排序),中间都用一个空格隔开。
直接上!!!
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
vector<string> a[n+1];
for(int i=0;i<m;i++){
string x;
int y;
cin>>y>>x;
a[y].push_back(x);
}
for(int i=1;i<=n;i++){
sort(a[i].begin(),a[i].end());
cout<<i<<" "<<a[i].size()<<" ";
for(int j=0;j<a[i].size();j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

被折叠的 条评论
为什么被折叠?



