点数ごとに人数求めて適当に、やるだけ。
#include<cstdio> #include<vector> #include<algorithm> #define rep(i,n) for(int i = 0; i < n; i++) #define drep(i,o) for(int i = o; i >= 0; i--) #define pb push_back using namespace std; int main(){ int n, a, b[101], c[101]; vector<int> p; scanf("%d", &n); rep(i,101) b[i] = 0; rep(i,n){ scanf("%d", &a); p.pb(a); b[a]++; } a = 1; drep(i,100){ c[i] = a; a += b[i]; } rep(i,n){ printf("%d\n",c[p[i]]); } return 0; }