给我们一个长度为n的整数数组a,如果数组a满足:a1≤a2≤⋯≤an,则称该数组为有序数组。
对于整数数组a,我们可以执行以下操作一次:
(1)选择一个整数x(0≤x≤1e9);
(2)对数组中的所有元素ai(i∈[1,n]),用|ai−x|替代原来的值,即有:ai=|ai−x|;
请问,是否存在这样的x,使得数组经过上述操作后转换为有序数组?
给我们一个长度为n的整数数组a,如果数组a满足:a1≤a2≤⋯≤an,则称该数组为有序数组。
对于整数数组a,我们可以执行以下操作一次:
(1)选择一个整数x(0≤x≤1e9);
(2)对数组中的所有元素ai(i∈[1,n]),用|ai−x|替代原来的值,即有:ai=|ai−x|;
请问,是否存在这样的x,使得数组经过上述操作后转换为有序数组?
第一行一个整数t(1≤t≤2*104):测试用例数;
每个测试用例两行:
第一行为一个整数n(2≤n≤2e5): 数组a中的元素个数;
第二行为n个整数a1,a2,…,an(0≤ai≤1e8):ai为数组a的第i个元素;
测试数据保证,所有测试用例的n之和不超过2e5;共t行,每个测试用例一行一个整数;如果存在一个整数x,使得数组a经过上述操作后可以转换为有序数组,则输出x的值;如果不存在,则输出-1;
测试数据确保:如果x存在,则x满足0≤x≤1e9;
如果存在多个x满足要求,请输出最小的x;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
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],有序;