A - GukiZ and Contest
#include <bits/stdc++.h> using namespace std; struct node { int prize,order1,order2; } a[2005]; bool cmp1(node x,node y) { return x.prize>y.prize; } bool cmp2(node x,node y) { return x.order1<y.order1; } int n; int main() { int n; cin>>n; for(int i=0; i<n; i++) { cin>>a[i].prize; a[i].order1=i; } sort(a,a+n,cmp1); for(int j=0; j<n; j++) { a[j].order2=j+1; if(a[j].prize==a[j-1].prize&&j>0) a[j].order2=a[j-1].order2; } sort(a,a+n,cmp2); for(int i=0; i<n; i++) { if(i<n-1) cout<<a[i].order2<<" "; else cout<<a[i].order2<<endl; } return 0; }