该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
拆卡补号(split)
题目描述
一盒数字卡片共有 n 张,按原顺序编号为 1,2,…,n,第 i 张上写着正整数 ai。不同卡片上的整数可以相同。
Y 同学要选择恰好一张卡片,将上面的整数拆成两个正整数 b,c,满足 b+c=ai。原卡片被取走,换成写有 b 和 c 的两张新卡片。之后,他可以任意调整所有卡片的顺序。
他希望调整后的 n+1 张卡片恰好写着一段连续的正整数,也就是存在正整数 x,使这些整数分别为 x,x+1,…,x+n,每个整数恰好出现一次。
请判断是否能做到。若能,选择原编号最小的可拆卡片,并按 b≤c 输出拆出的两个数;若不能,报告无解。
输入格式
第一行包含一个整数 T,表示测试用例数量。
对于每组测试用例,第一行包含一个整数 n,表示原卡片数量;第二行包含 n 个整数 a1,a2,…,an,按原编号顺序给出卡片上的整数。
输出格式
对于每组测试用例,输出一行。
若无解,输出 −1。否则输出三个整数 i,b,c,其中 i 为所选卡片的原编号,b,c 为拆出的两个正整数,且 b≤c。
样例
样例输入 #1
3
3
3 3 4
2
1 5
2
2 2
样例输出 #1
1 1 2
2 2 3
-1
样例输入 #2
1
4
3 5 6 11
样例输出 #2
4 4 7
样例输入 #3
1
3
1 2 3
样例输出 #3
-1
样例解释
第一组样例的第一组测试用例中,取走第一张卡片,将 3 拆成 1 和 2,便得到写有 1,2,3,4 的四张卡片。取走第二张也能做到,但题目要求选择原编号更小的卡片。
第二组测试用例中,将第二张的 5 拆成 2 和 3,得到 1,2,3。
数据范围与约定
对于所有数据,保证 1≤T≤10,2≤n≤2×105,1≤ai≤109。同一个测试点中,所有测试用例的 n 之和不超过 2×105。
每个测试点 5 分,分档如下:
| 测试点 |
分值 |
范围 |
特殊性质 |
| 1∼2 |
10 |
T≤10,n≤6,∑n≤30,ai≤20 |
无 |
| 3∼4 |
T≤10,∑n≤103,ai≤104 |
| 5∼8 |
20 |
T≤10,∑n≤2×105,ai≤109 |
A |
| 9∼12 |
B |
| 13∼16 |
T≤10,∑n≤2×104,ai≤109 |
无 |
| 17∼20 |
T≤10,∑n≤2×105,ai≤109 |
特殊性质 A:每组测试用例的 ai 两两不同。
特殊性质 B:每组测试用例均满足 ∑i=1nai=(n+1)(n+2)/2。