CF1998B.Minimize Equal Sum Subarrays

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Minimize Equal Sum Subarrays

题目描述

最小化相等和子数组

已知 农夫约翰喜欢排列,我也喜欢它们!

给定一个长度为 n n 的排列 p p

找到一个长度为 n n 的排列 q q ,使得以下条件下的对数最小化:对所有 1ijn 1 \leq i \leq j \leq n ,使得 $p_i + p_{i+1} + \ldots + p_j = q_i + q_{i+1} + \ldots + q_j$。

:一个长度为 n n 的排列是一个包含 1 1 n n n n 个不同整数的数组。例如,[2, 3, 1, 5, 4] 是一个排列,但 [1, 2, 2] 不是一个排列(数字 2 在数组中出现了两次),而 [1, 3, 4] 也不是一个排列(n=3 n=3 ,但数组中有 4)。

输入格式

第一行包含一个整数 t t (1t104 1 \leq t \leq 10^4 ) — 测试用例的数量。

每个测试用例的第一行包含一个整数 n n (1n2105 1 \leq n \leq 2 \cdot 10^5 )。

接下来一行包含 n n 个空格分隔的整数 p1,p2,,pn p_1, p_2, \ldots, p_n (1pin 1 \leq p_i \leq n ) — 表示长度为 n n 的排列 p p

保证所有测试用例中 n n 的总和不超过 2105 2 \cdot 10^5

输出格式

对于每个测试用例,输出一行包含任意长度为 n n 的排列 q q ,使得 q q 最小化满足条件的对数。

说明/提示

对于第一个测试用例,存在唯一一对 (i,j) (i, j) (1ijn 1 \leq i \leq j \leq n ) 使得 $p_i + p_{i+1} + \ldots + p_j = q_i + q_{i+1} + \ldots + q_j$,即 (1,2) (1, 2) 。可以证明,没有这样的 q q 使得不存在满足条件的对。

样例

3
2
1 2
5
1 2 3 4 5
7
4 7 5 1 2 6 3
2 1
3 5 4 2 1
6 2 1 4 7 3 5

在线编程 IDE

建议全屏模式获得最佳体验