#P. 小明的书房 IIII

  • 传统题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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值