问题 5190 --商品大促销

5190: 商品大促销

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

题目描述

双十一快到了,明明准备利用双十一进行商品大促销。明明家的商店共有n种商品,第i个产品的价格是ai,为了更好地促销,明明想使所有商品的价格都一样。当然,为了保证利润,他希望平稳地改变价格。

明明可以改变某产品i的价格,使该产品的旧价格ai与新价格bi的差值不超过k,即满足|aibi|k的条件(|x|x的绝对值)

每个产品的价格他只能更改一次。注意,他也可以不改变一些产品的价格,即ai=bi。每个产品i的新价格bi应该是正的(bi>0)

你的任务是帮助明明找出所有产品的最大可能的相同价格B,并保证所有商品满足条件|aiB|k(其中ai是产品的旧价格,B是所有产品的相同的新价格)并输出B。如果找不到满足条件的B,则输出-1

     注意,选择的价格B应该是整数。

输入

第一行包含一个整数q(1≤q≤100):测试样例数。每个测试样例有两行。

每个测试样例的第一行包含两个整数nk(1≤n≤100,1≤k≤108):分别表示商品的数量以及值k。第二行包含n个整数a1,a2an(1≤ai≤108),其中ai是第i个产品的价格。

输出

输出共q行,每行一个整数,其中第i行是第i个测试样例的答案B

如果不可能使所有给定商品的价格相等,即不存在一个正整数B,使得所有产品满足|aiB|k(其中ai为产品的旧价格,B为所有产品的新的价格),则输出-1。否则,输出所有产品的最高可能相同的价格B

样例输入
Copy
4
5 1
1 1 2 3 1
4 2
6 4 8 5
2 2
1 6
3 5
5 2 5
样例输出
Copy
2
6
-1
7

提示

在第一个测试样例中,您可以选择价格B=2。很容易看出,每个商品的旧价格和新价格B=2之间的差价不超过1

在第二个测试样例中,您可以选择价格B=6,使得所有商品的新、旧价格之间的差值都不超过2

在第三个测试样例中,您无法选择任何合适的价格B。对于任意可能的B,至少有两件商品是不符合的:|1B|2|6B|2

在第四个测试样例中,17之间的所有值都有效。最大值是7,所以B=7

来源

[提交][状态]