qwejajkldjla 2022-03-03 20:52 采纳率: 50%
浏览 70
已结题

求看一个简单题的问题,有两个节点过不了

##有两个节点过不了

yhf有

n
n 个桶,每个桶里都装着一些数字(一个或多个),所有的数字总共有
m
m 个。这天,lzh把yhf所有的桶全打翻了,数字洒了一地!所幸,每个数字都有它所在的桶的标记。yhf希望恢复所有的桶,但是他还要刷考研题目,于是他你来完成这个任务。
由于yhf能在一秒内完成一套考研数学题,因此他希望你的程序能在一秒内得出结果
输入格式

第一行输入两个整数 n,m
n,m,第二行到第 m+1
m+1 行,每行两个整数 x,tx,t,分别表示这个数字和它所在的桶。保证每个桶至少含有一个数字。

输出格式

输出
nn 行,若第 ii 个桶含有 kik i个数字,则第 ii 行输出 kiki个整数,表示这个桶内的数字。注意:输出每个桶的数字时应按升序排序输出。

问题相关代码,请勿粘贴截图
#include <iostream>
//#include<algorithm>
#include<set>
using namespace std;


int main(){
    int n,m,x,y;
    cin>>n>>m;
    set<int> s[m+10];
    for(int i=0;i<m;i++){
        cin>>x>>y;
        s[y].insert(x);
    }
    for(int j=1;j<=n;j++){
        for(set<int>::iterator it=s[j].begin();it!=s[j].end();++it){
            cout<<*it<<" ";
        }
        cout<<endl;
    }
    
    
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • MX_w 2023-03-07 22:26
    关注

    因为set自动排序,所以没过测试点的原因不是没排序
    实际上的原因是 set自动去重 于是重复数据就无了
    总结:用vector解决

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 3月3日