有 N 个整数,第 i 个整数的值 A_i 满足 0 \le A_i \le N。
现有 N 次减数操作,第 j 次(j \in [0,N-1])减数操作要求将这组数中所有满足 A_i \gt j 的数,减少到 j ,并统计出此时这组数中逆序对的总数。
逆序对指的是,如果有两个整数 A_i 和 A_j,满足 i \lt j 且 A_i \gt A_j,则这两个整数构成逆序对。
请注意:这里的每次操作都是在原始 N 个数的基础上进行减数操作。即:在第 j 次操作之后,第 j + 1 次操作之前,数组中的每个数的值会恢复为读入的值。
第 1 行输入整数 N。
第 2 行输入 N 个整数 A_1,\dots,A_n。
输出 N 行,分别代表对于 j=0,1,\dots,N-1 的情况下,进行减数操作后逆序对的数量。
5 5 3 2 4 0
0 4 4 6 7
8 8 6 2 2 0 0 5 3
0 8 8 12 15 15 17 18
共有 5 个数,5 次减数操作。
第 j 次减数操作需要将所有大于 j 的数,变为 j 。
第 0 次操作后,数组为 0,0,0,0,0,有 0 个逆序对。
第 1 次操作后,数组为 1,1,1,1,0,有 4 个逆序对。
第 2 次操作后,数组为 2,2,2,2,0,有 4 个逆序对。
第 3 次操作后,数组为 3,3,2,3,0,有 6 个逆序对。
第 4 次操作后,数组为 4,3,2,4,0,有 7 个逆序对。
对于 20\% 的数据,满足 1 \le N \le 100。
对于 50\% 的数据,满足 1 \le N \le 5000。
对于 100\% 的数据,满足 1 \le N \le 10^5,0 \le A_i \le N。