MC0203 小码哥的艰难选择
小码哥养了很多花,这些花每天都需要大量的肥料,现在小码哥提供不起这么多肥料了,他决定从所有的花里面挑选一个淘汰,规则如下:
每一个花的初始分数是1000分;
在总共𝑛(1≤𝑛≤100)个回合里,每一个回合,小码哥会随机给一个花对应的分数(可正可负),需要加在鲜花的当前分数上。
最后谁的分数最少则淘汰谁,如果出现两个分数一样的,则淘汰掉最先获得这个分数的。
input:
2
meigui 110
yueji -20
output:
yueji
980
#include <bits/stdc++.h>
using namespace std;
const int N = 1000;
bool cmp(pair<string,int> &a,pair<string,int> &b)
{
return a.second<b.second;
}
unordered_map<string,int> ump;
int n;
int main(){
cin>>n;
while(n--)
{
string h; int x; cin>>h>>x;
ump[h]+=x;
}
for(auto it=ump.begin();it!=ump.end();it++)
{
it->second+=1000;
}
vector<pair<string,int>> vmp(ump.begin(),ump.end()); // nb vector 存map 66666
sort(vmp.begin(),vmp.end(),cmp);
cout<<vmp[0].first<<"\n"<<vmp[0].second;
return 0;
}
测试: