The question was to find the winner based on the total score of each participant and if participants are having equal scores then their timestamp is checked for their last submission. Those who has it first wins. The code is below.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; cin>>n;
std::vector<pair <int, pair<string, int>>> apiData;
for(int i = 0; i < n;i++)
{
int timeStamp, scoreObtained;
string userName;
cin>>timeStamp>>userName>>scoreObtained;
apiData.push_back({timeStamp, {userName, scoreObtained}});
}
sort(apiData.begin(), apiData.end());
map<string, int> sortedUsersWithScores, sortedUsersWithMaximumScores;
for(int i = 0; i < n;i++)
sortedUsersWithScores[apiData[i].second.first]+=apiData[i].second.second;
int maxScore=INT_MIN;
for(int i = 0; i < n;i++)
maxScore = max(maxScore, sortedUsersWithScores[apiData[i].second.first]);
for(int i = 0; i < n;i++)
{
if(maxScore == sortedUsersWithScores[apiData[i].second.first])
{
sortedUsersWithMaximumScores[apiData[i].second.first] += apiData[i].second.second;
if(sortedUsersWithMaximumScores[apiData[i].second.first] >= maxScore)
{
cout<<apiData[i].second.first<<endl;
break;
}
}
}
return 0;
}