CF1183B.Equalize Prices

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

Equalize Prices

题目描述

商店里有 nn 件商品,第 ii 件商品的价格为 aia_i。店主希望将所有商品的价格统一,但又希望价格变动平稳。

具体来说,店主可以将某件商品 ii 的价格从 aia_i 调整为 bib_i,要求新旧价格之差不超过 kk,即满足 aibik|a_i - b_i| \le k(其中 x|x| 表示 xx 的绝对值)。

每件商品的价格最多只能调整一次。注意,店主可以选择不调整某些商品的价格。每件商品的新价格 bib_i 必须为正整数(即对所有 ii,都有 bi>0b_i > 0)。

你的任务是找出所有商品可以统一成的最大可能价格 BB,使得对所有商品都满足 aiBk|a_i - B| \le k(其中 aia_i 是原价,BB 是所有商品的新统一价格),或者报告不存在这样的价格 BB

注意,所选的价格 BB 必须是整数。

你需要回答 qq 个独立的询问。

输入格式

输入的第一行包含一个整数 qq1q1001 \le q \le 100),表示询问的数量。每个询问由两行组成。

每个询问的第一行包含两个整数 nnkk1n100,1k1081 \le n \le 100, 1 \le k \le 10^8),分别表示商品的数量和 kk 的值。第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1081 \le a_i \le 10^8),表示每件商品的原价。

输出格式

输出 qq 行,每行一个整数,第 ii 行表示第 ii 个询问的答案 BB

如果无法将所有商品的价格统一为某个整数 BB,使得对所有商品都满足 aiBk|a_i - B| \le k,则输出 1-1。否则输出所有商品可能统一的最大价格 BB

说明/提示

在第一个样例询问中,可以选择价格 B=2B=2。可以发现每个商品的原价与新价 B=2B=2 的差值都不超过 11

在第二个样例询问中,可以选择价格 B=6B=6,此时所有商品的原价与新价 B=6B=6 的差值都不超过 22

在第三个样例询问中,无法选择任何合适的价格 BB。对于任意 BB,至少有一个条件不满足:1B2|1-B| \le 26B2|6-B| \le 2

在第四个样例询问中,所有 BB 取值在 1177 之间都合法,但最大值为 77,所以答案是 77

由 ChatGPT 4.1 翻译

样例

4
5 1
1 1 2 3 1
4 2
6 4 8 5
2 2
1 6
3 5
5 2 5
2
6
-1
7

在线编程 IDE

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