题意:按照得分高低
排名
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e4+10;
int a[maxm];
int b[maxm];
int c[maxm];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
sort(a,a+n);
int m=unique(a,a+n)-a;
int sum=1;
int x=0;
for(int i=m-1;i>=0;i--)
{
int cnt=0;
for(int j=0;j<n;j++)
{
if(a[i]==b[j])
{
c[a[i]]=sum;
cnt++;
}
}
sum+=cnt;
}
for(int i=0;i<n;i++)
{
if(i==0)
{
printf("%d",c[b[i]]);
}
else
{
printf(" %d",c[b[i]]);
}
}
printf("\n");
}
return 0;
}
排名