CF1691B.Shoe Shuffling

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

Shoe Shuffling

题目描述

一个班的学生想要互相换鞋子,假设这个班有 nn 名学生,给定一个非递减的序列记录每个学生鞋子的码数。你需要给出一个下标排列,使得每个学生拿到的都不是自己的鞋子,并且码数与原来的相同。如果找不到这样的下标排列,输出 1-1

定义一个下标排列由整数 11nn 组成,顺序任意。比如, [2,3,1,5,4] [2,3,1,5,4] 是一个下标序列;[1,2,2] [1,2,2] 不是一个下标数列,因为 22 出现了两次;[1,3,4] [1,3,4] 不是一个下标序列,因为排列的长度为 33 却出现了元素 44

输入格式

每个测试点有多组数据。

第一行一个整数 tt ( 1t1000 1 \le t \le 1000 ),表示共有 tt 组数据。

接下来 2t2t 行。每组数据 22 行。

每组数据的第一行一个整数 nn ( 1n105 1\leq n\leq10^5 ) 表示学生个数。

每组数据第二行 nn 个整数 s1,s2,,sn s_1, s_2,\ldots,s_n ( 1si109 1\leq s_i\leq10^9 ,对于所有 1i<n 1\le i<n , sisi+1 s_i\le s_{i+1} ) ,表示学生鞋子的码数。

保证所有数据 nn 的和不超过 105 10^5

说明/提示

对于第一组数据,除了 [1,2,3,4,5][1, 2, 3, 4, 5] 外的长度为 55 的下标序列都是合法的,因为每个同学之间都能穿对方的鞋子。

对于第二组数据,可以证明没有合法的下标序列。

样例

2
5
1 1 1 1 1
6
3 6 8 13 15 21
5 1 2 3 4 
-1

在线编程 IDE

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