2A. Winner - Codeforces Solution C++

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