#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. 第 1 位数字是 3,前面无数字,因此数量为 0;
  2. 第 2 位数字是 1,前面只有数字 3(3 > 1),因此数量为 1;
  3. 第 3 位数字是 4,前面的数字是 3、1(均小于 4),因此数量为 0;
  4. 第 4 位数字是 2,前面的数字是 3、1、4(其中 3 > 2、4 > 2),共 2 个,因此数量为 2;
  5. 第 5 位数字是 5,前面的数字是 3、1、4、2(均小于 5),因此数量为 0。 最终输出结果为 0 1 0 2 0。