#P14620. [IATI2022 练习赛]Disorder
[IATI2022 练习赛]Disorder
题目描述
有一叠牌,共 N 张。每张牌上写有一个 1 到 N 之间的整数,并且这些整数两两不同。
现在这些牌被洗乱后按从上到下的顺序摆放。定义这叠牌的无序度为:
- 满足“较大的数在较小的数上方”的牌对数量。
换句话说,若存在两个位置 i < j,且第 i 张牌上的数字大于第 j 张牌上的数字,那么这对牌会对无序度贡献 1。
这实际上就是当前牌序列的逆序对数量。
接下来,Rado 会依次从牌堆中抽走若干张牌。每次抽牌后,他都想知道:
- 当前剩余牌堆的无序度是多少?
请你回答所有这些问题。
输入格式
第一行一个正整数 N,表示牌的数量。
第二行 N 个两两不同的正整数,均在 1 到 N 之间,表示从上到下每张牌上的数字。
第三行 N-2 个两两不同的正整数,均在 1 到 N 之间,表示 Rado 依次抽走的牌面数字。
保证第三行中给出的每个数字都出现在第二行中,且不会重复。
输出格式
输出 N-1 个整数,用空格分隔。
其中:
- 第
1个数表示最初整叠牌的无序度; - 第
2个数表示抽走第一张指定牌后的无序度; - 第
3个数表示抽走前两张指定牌后的无序度; - 以此类推;
- 最后一个数表示抽走前
N-2张指定牌后的无序度。
样例 #1
输入 #1
6
6 1 2 5 3 4
3 5 4 6
输出 #1
7 5 3 2 0
样例说明
初始序列为:
6 1 2 5 3 4
其逆序对共有 7 个,所以第一个输出为 7。
之后依次删除牌面值为 3、5、4、6 的牌,每次删除后重新统计剩余序列中的逆序对数,对应得到:
5, 3, 2, 0
因此最终输出为:
7 5 3 2 0
数据范围
3 <= N <= 100000
子任务信息:
10%的数据满足N <= 10030%的数据满足N <= 500045%的数据满足N <= 15000
说明
每个测试点单独评测。