#A3904P. 排队插队记数

排队插队记数

【题目描述】

现在有一群同学排队,他们的身高不一样。
同学们一个一个地进入队伍,每次新来的同学都会先站在队伍的最后,然后不断向前“交换”位置,直到站到一个合适的位置,使得队伍从前到后按身高从低到高排列。

例如:

  • 现在队伍是 100 120 150
  • 如果新来的同学身高是 110,他会:
    1. 先站在队尾 100 120 150 [110]
    2. 与前面 150 交换 → 100 120 [110] 150
    3. 与前面 120 交换 → 100 [110] 120 150
    4. 到达合适位置,交换了 2 次

我们想知道:
当所有同学都依次进入队伍时,总共发生了多少次“交换”操作。


【输入格式】

  • 第一行一个整数 nn,表示有 nn 个同学。
  • 第二行包含 nn 个整数,表示每个同学依次进入队伍的身高。

【输出格式】

  • 输出一个整数,表示总共发生的交换次数。

【样例输入】

5
100 120 110 130 115

【样例输出】

3

【样例解释】

进入顺序如下:

  • 100 → 直接进队,无交换。
  • 120 → 直接在队尾,无交换。
  • 110 → 向前与 120 交换 1 次。
  • 130 → 在队尾,无交换。
  • 115 → 向前与 130 交换 1 次,再与 120 交换 1 次。

总交换次数 = 1 + 1 + 1 = 3


【数据范围】

  • 1n1051 \le n \le 10^5
  • 11 \le 身高 109\le 10^9