joi春合宿2007 day1-1:Score
解法
ソートする。
1番目にいる人は、1位。
i(>=2)番目にいる人は、
i-1番目の人と得点が同じならば、i-1番目の人と同じ順位
i-1番目の人と得点が違うならば、i位
とする。
コード
#include<bits/stdc++.h> using namespace std; typedef pair<int,int>P; int r[100000]; int main(){ int N; vector<P>V; cin>>N; for(int i=0;i<N;i++){ int a; cin>>a; V.push_back(P(-a,i)); } sort(V.begin(),V.end()); int cur=1; r[V[0].second]=1; for(int i=1;i<N;i++){ if(V[i-1].first!=V[i].first)cur=i+1; r[V[i].second]=cur; } for(int i=0;i<N;i++)cout<<r[i]<<endl; }