#P3378. 排队(line)-T3
排队(line)-T3
题目描述
楠楠最近在研究南海区 5 年级英语成绩的排序有关算法,如果数列中的数是从小到大排列的,则称有序的。研究中对于没有排好序的数列,要统计每个数前面有多少比它大的数字。
比如有 5 个数的数列:3 1 4 2 5,则第 1 个数 3 之前有 0 个数比它大;第 2 个数 1 之前有 1 个数比它大;第 3 个数 4 之前有 0 个数比它大;第 4 个数 2 之前有 2 个数比它大;第 5 个数 5 之前有 0 个数比它大。由于数列很长,楠楠求你编程来统计。
输入格式
第一行 1 个整数 N,表示数列有 N 个整数。 第二行有 N 个非负整数,每个数表示一个分数,范围是 [0…120]。
数据范围
- 部分数据:N 的范围是 [1…1000],每个数范围是 [0…120]
- 全部数据:N 的范围是 [1…100000],每个数范围是 [0…120]
输出格式
一行 N 个非负整数(中间有空格),第 i 个数表示原数列中第 i 位前有多少比第 i 位数大的数。
样例输入
5
3 1 4 2 5
样例输出
0 1 0 2 0
样例解释
逐行分析原数列中每个位置的数字及其前面比它大的数字数量:
- 第 1 位数字是 3,前面无数字,因此数量为 0;
- 第 2 位数字是 1,前面只有数字 3(3 > 1),因此数量为 1;
- 第 3 位数字是 4,前面的数字是 3、1(均小于 4),因此数量为 0;
- 第 4 位数字是 2,前面的数字是 3、1、4(其中 3 > 2、4 > 2),共 2 个,因此数量为 2;
- 第 5 位数字是 5,前面的数字是 3、1、4、2(均小于 5),因此数量为 0。 最终输出结果为 0 1 0 2 0。