#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

京公网安备 11010502036488号