使用STL的multimap出错了求助
查看原帖
使用STL的multimap出错了求助
190694
木洛楼主2021/2/22 17:59
#include <iostream>
#include <map>
#include <utility>
#include <cmath>
using namespace std;
multimap<int,int> M;
int main()
{
    int n,m,a,b,num,cnt=0;

    cin>>n>>m;
    num=ceil(m*1.5);
    for(int i=0;i<n;i++){
        cin>>a>>b;
        M.insert(make_pair(b,a));
    }

    auto iter=M.end();
    for(int i=num;i>0;iter--,i--);

    cout<<iter->first<<" "<<num<<endl;
    auto it=--M.end();
    for(;it!=iter;it--)
    cout<<it->second<<" "<<it->first<<endl;
    cout<<it->second<<" "<<it->first<<endl;
    return 0;
}

样例可以过,但是相同键值multimap不是红黑树实现应该有序啊。但是有些测试用例过不了,因为相同键值(分数)对应报名号顺序是什么情况的啊。 比如

in:
6 3
9848 90
6731 88
1422 95
7483 84
8805 95
4162 88

out:
88 5
1422 95
8805 95
9848 90
4162 88
6731 88
2021/2/22 17:59
加载中...