5567 成绩排名(score)
经验值:1200 时间限制:1000毫秒
经开区2020年**学竞赛试题
不许抄袭,一旦发现,直接清空经验!
题目描述 Desc**ption
某次**学测试一共有4道题目,每题有10个测试点,每个测试点10分,学生得分肯定都是整数,最多400分,最少0分。现给出本次测试n个同学的成绩,请统计输出每个同学前面有多少人分数比他高。
输入描述 Input Desc**ption
共2行。第一行一个正整数n;第二行n个用空格隔开的整数,表示每个同学的成绩。
输出描述 Output Desc**ption
一行,n个整数,第i个表示第i位同学前面比他分数高的人数。
样例输入 Sample Input
10 220 100 400 360 180 250 300 400 200 190
样例输出 Sample Output
0 1 0 1 3 2 2 0 6 7
数据范围及提示 Data Size & Hint
第1个同学220分,他前面有0人比他分数高;第2个同学100分,他前面有1人比他分数高,即考了220的人;第3个同学400分,他前面有0人比他分数高;……;第10个同学190分,他前面有7人比他分数高,即考了220分、400分、360分、250分、300分、400分和200分的7个人。
数据范围:
80%的数据1<=n<=1000
100%的数据1<=n<=10000
求核心
李宜和在2021-08-06 09:16:02追加了内容
@李奕歌
错误代码:
#include<bits/stdc++.h>
using name** std;
long long a[100005],b[100005],c,n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
b[a[i]]++;
for(int j=400;j>a[i];j--){
if(b[j]!=0){
c+=b[j];
}
}
cout<<c<<" ";
}
ret**n 0;
}
核心:
for(int i=1;i<=n;i++){
cin>>a[i];
b[a[i]]++;
int c=0;
for(int j=400;j>a[i];j--){
if(b[j]!=0){
c+=b[j];
}
}
cout<<c<<" ";
}