#P005926. 减数操作

减数操作

题目描述

NN 个整数,第 ii 个整数的值 AiA_i 满足 0AiN0 \le A_i \le N

现有 NN 次减数操作,第 jj 次(j[0,N1]j \in [0, N-1])减数操作要求将这组数中所有满足 Ai>jA_i > j 的数,减少到 jj,并统计出此时这组数中逆序对的总数。

逆序对指的是,如果有两个整数 AiA_iAjA_j,满足 i<ji < jAi>AjA_i > A_j,则这两个整数构成逆序对。

请注意:这里的每次操作都是在原始 NN 个数的基础上进行减数操作。即:在第 jj 次操作之后,第 j+1j+1 次操作之前,数组中的每个数的值会恢复为读入的值。

输入格式

11 行输入整数 NN

22 行输入 NN 个整数 A1,,AnA_1, …, A_n

输出格式

输出 NN 行,分别代表对于 j=0,1,,N1j = 0, 1, …, N-1 的情况下,进行减数操作后逆序对的数量。

样例

输入

5
5 3 2 4 0

输出

0
4
4
6
7

数据范围

对于 20%20\% 的数据,满足 1N1001 \le N \le 100

对于 50%50\% 的数据,满足 1N50001 \le N \le 5000

对于 100%100\% 的数据,满足 1N1051 \le N \le 10^50AiN0 \le A_i \le N