➤ Problem Link : 2A. Winner
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,score;
string name;
cin>>n;
unordered_map<string,vector<pair<int,int> > > Mscore;
unordered_map<string,int> ms;
int maxscore=-1;
for(int i=1;i<=n;i++)
{
cin>>name>>score;
ms[name]+=score;
Mscore[name].push_back(make_pair(ms[name],i));
}
for(auto it : ms)
{
if(it.second > maxscore)
maxscore = it.second;
}
int m=INT_MAX;
for(auto it : Mscore)
{
if(ms[it.first]!=maxscore)
continue;
for(int i=0;i<it.second.size();i++)
{
if(it.second[i].first>=maxscore && it.second[i].second<m)
{
m=it.second[i].second;
name=it.first;
}
}
}
cout<<name;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
