题解 | 小苯的比赛上分

小苯的比赛上分

https://www.nowcoder.com/practice/f5c52183dfb148489321f881239216c1

#include <iostream>
#include<map>
#include<queue>
using namespace std;

int main() {
    int n,maxrating,m;
    multimap<int,int> mp;
    cin>>n>>m;
    queue<int> plus;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        mp.insert({x,i-1});
    }
    //second记录账号  first记录当前账号分数
    for(int i=1;i<=m;i++)
    {
        int x;
        cin>>x;
        int first,second;
        first=mp.begin()->first;
        second=mp.begin()->second;
        first+=x;
        mp.erase(mp.begin());
        mp.insert({first,second});
        auto it=mp.rbegin();
        maxrating=it->first;
        cout<<maxrating<<endl;
    }
    

}
// 64 位输出请用 printf("%lld")

为什么用multimap:

使用map时候可能会出现,同分数,不同账号,但是我以分数为键位;

所以在pop和insert的过程中,会覆盖别的同分数账号。

故用没有排异性的multimap

全部评论

相关推荐

01-14 12:34
门头沟学院 C++
牛马人的牛马人生:太暖心了啊 配环境是真烦
点赞 评论 收藏
分享
递归到脑子变傻:杭州还有上位机用VB的,实在没绷住
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务