Nemam ideju kako da odredim rank svakog elementa. Svatio sam da bi trebalo imena uneti kao stringove a poene kao niz brojeva, znao bih naći najveći element i najmanji, ali ne znam kako odrediti rank bodova.
Prvo napravis jedan niz koji ce da cuva parove elemenata i parovi ce biti vrednost koji je neko osvojio i njegova pozicija u nizu. Nakon toga cemo ga sortirati u opadajuci niz gledajuci vrednosti poena. Zatim cemo uzeti drugu vrednost para u nizu i postaviti resenje od te druge pozicije jednako poziciji tog clana u nizu. Evo koda za lakse razumevanje :
#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<int,int> a,pair<int,int> b){
return a.first > b.first;
}
int main()
{
int n;
cin>>n;
int x[n];
vector<pair<int,int> > v;
string a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
cin>>x[i];
v.push_back(make_pair(x[i],i));
}
sort(v.begin(),v.end(),cmp);
int ans[n];
for(int i=0;i<n;i++)
{
ans[v[i].second]=i+1;
}
for(int i=0;i<n;i++)
cout<<a[i]<<" "<<ans[i]<<endl;
}