➤ 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!!