您的位置:首页 > 其它

CodeForces-551A GukiZ and Contest

2015-08-21 21:38 363 查看
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int maxn = 2000 + 5;
struct STUDENT
{
int score;
int num;
int position;
bool operator < (const STUDENT Next) const
{
return num < Next.num;
}
} student[maxn];
int n;

bool cmp(STUDENT Now, STUDENT Next)
{
return Now.score > Next.score;
}

int main()
{
while(~scanf("%d", & n))
{
for(int i = 1; i <= n; i ++)
{
scanf("%d", &student[i].score);
student[i].num = i;
}
sort(student + 1, student + 1 + n, cmp);
student[1].position = 1;
for(int i = 2; i <= n; i ++)
{
if(student[i].score == student[i - 1].score)
student[i].position = student[i - 1].position;
else
student[i].position = i;
}
sort(student + 1, student + 1 + n);
for(int i = 1; i < n; i ++)
printf("%d ", student[i].position);
printf("%d\n",student
.position);
}
return 0;
}


题意:

自己都没怎么仔细看。意会了下。输入n。之后输入n个数。之后按顺序输出比这个数 大的数 的个数(+1)。

例如 3 5 3 4 5。比3大的数有3个,则输出3 + 1 = 4。比5大的数有0个,则输出0 + 1 = 1。

题解:

我写麻烦了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: