# HackerEarth Leaderboard Standings problem solution

In this HackerEarth Leaderboard Standings problem solution, There were N submissions made in a programming contest containing infinite problems. Each submission earned the contestant 100 points as none of the submissions is wrong or a partial submission. You are given the details of the submissions - the username of the contestant and the time taken to solve the problem. Your task is to print the rank list according to the following rules:

The contestant with a higher score gets a higher rank.
If the scores are tied, then the contestant with the least sum of the time taken to solve the problems gets a higher rank.
In case of a tie in both scores and the sum of the time taken, they are ranked lexicographically according to their usernames.

## HackerEarth Leaderboard Standings problem solution.

`#include<bits/stdc++.h>using namespace std;#define ll long long#define si(x) scanf("%d", &x)#define sc(x) scanf("%c", &x)#define sl(x) scanf("%lld", &x)#define pl(x) printf("%lld\n", x)#define pi(x) printf("%d\n", x)#define gu getchar_unlocked#define pu putchar_unlocked#define setbits __builtin_popcountll#define pb push_back#define mp make_pair#define MOD 1000000007#define speed ios::sync_with_stdio(false)struct newtype{  int score;  int time;  string name;};typedef struct newtype node;vector <node> v;map < string, pair<int, int> > m;bool cmp(node A, node B){  if(A.score != B.score){    return A.score > B.score;  }  else if(A.time != B.time){    return A.time < B.time;  }  else{    return A.name < B.name;  }}int main(){  int n, i;  si(n);  for(i = 0; i < n; i++){    string s; int t;    cin>>s; si(t);    auto it = m.find(s);    if(it != m.end()){      pair<int, int> P = it -> second;      P.first += 100;      P.second += t;      m[s] = P;    }    else{      m[s] = mp(100, t);    }  }  for(auto it = m.begin(); it != m.end(); it++){    node N;    N.name = it -> first;    N.score = (it -> second).first;    N.time = (it -> second).second;    v.pb(N);  }  sort(v.begin(), v.end(), cmp);  for(i = 0; i < v.size(); i++){    cout<<i + 1<<" "<<v[i].name<<endl;  }}`