#P11506. [2022省队模拟]小Z与函数

[2022省队模拟]小Z与函数

题目背景

小 Z 在写代码,他梦想着一天可以改变世界。

题目描述

在 2021.12.15 晚,小 Z 写下了一个函数......

int get(n)
{
	int res=0;
	for(int i=1;i<=n;i++)
	{
		int vs=0;
		for(int j=i;j<=n;j++)
			if(a[i]<a[j])
				swap(a[i],a[j]),res++,vs=1;
		res+=vs;
	}
	return res;
}

小 Z 可以用函数计算一个序列的值。

他有一个长度为 lenlen 的序列 bb ,小 Z 想知道,对于 bb 的每个前缀,将其作为一个序列 aa 所求得的函数值是多少?

举个例子,若当前 bb 为 [5,4,4,1] ,则你需要计算以下四个函数值:

get([5]);

get([5,4]);

get([5,4,4]);

get([5,4,4,1]);

请注意,本题多组数据!

输入格式(function.in)

第一行一个数 TT 表示有这么多组数据。

每组数据一行一个数表示 lenlen

接下来一行 lenlen 个数,第 ii 个数表示 bib_i

输出格式(function.out)

对于每组数据,输出一行共 lenlen 个数,用空格间隔开来,表示对于每个前缀的函数值。

样例输入 #1

2
5 
2 3 2 1 5
10
1 10 2 3 4 1 2 3 4 5

样例输出 #1

0 2 2 2 7
0 2 4 7 11 11 13 16 20 25

样例 #2

见下发样例。

样例说明与提示

对于100%的数据,保证 T5T\le 5 , n2×105n\le 2\times 10^5 , 1<bin1<b_i\le n

测试点编号 特殊性质
131 \sim 3 n300n\le 300 无限制
474 \sim 7 n3000n\le 3000 保证是一个排列
8108 \sim 10 无限制
111311 \sim 13 无限制 保证是一个排列
142014 \sim 20 无限制