问题 5963 --绝对排序

5963: 绝对排序★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 11  解决: 6
[提交][状态][命题人:]

题目描述

给我们一个长度为n的整数数组a,如果数组a满足:a1≤a2≤⋯≤an,则称该数组为有序数组。

对于整数数组a,我们可以执行以下操作一次:

1)选择一个整数x0≤x≤1e9);

2)对数组中的所有元素aii∈[1,n]),用|aix|替代原来的值,即有:ai=|aix|

      请问,是否存在这样的x,使得数组经过上述操作后转换为有序数组?


输入

第一行一个整数t1≤t≤2*104):测试用例数;

每个测试用例两行:

第一行为一个整数n(2≤n≤2e5): 数组a中的元素个数;

第二行为n个整数a1,a2an0≤ai≤1e8):ai为数组a的第i个元素;

     测试数据保证,所有测试用例的n之和不超过2e5;

输出

t行,每个测试用例一行一个整数;如果存在一个整数x,使得数组a经过上述操作后可以转换为有序数组,则输出x的值;如果不存在,则输出-1

测试数据确保:如果x存在,则x满足0≤x≤1e9

      如果存在多个x满足要求,请输出最小的x;
样例输入
Copy
8
5
5 3 3 3 5
4
5 3 4 5
8
1 2 3 4 5 6 7 8
6
10 5 4 3 2 1    
3
3 3 1
3
42 43 42
2
100000000 99999999
6
29613295 52036613 75100585 78027446 81409090 73215
样例输出
Copy
4
-1
0
8
2
-1
100000000
40741153

提示

对于第一个测试用例,可以选择x=4,将数组a转换为:[1,1,1,1,1],有序;

对于第三个测试用例,可以选择x=0,将数组a转换为:[1,2,3,4,5,6,7,8],有序;

对于第四个测试用例,可以选择x=8,将数组a转换为:[2,3,4,5,6,7],有序;

来源

 

[提交][状态]