一伙坏蛋在商场里安装了一枚定时炸弹,定时器初始设置为b秒。每秒钟,定时器的值减1,当定时器的值为0时炸弹就会爆炸。为了给商场里面的人群足够的撤离时间,身为拆弹专家的你被安排去尽量延迟炸弹的爆炸时间。
为此,你的战友们为你准备了n件工具,每件工具只能使用1次。如果你使用了第i件工具,定时器的值可以增加xi秒。另外,由于定时器的自身限制,定时器的最大值只能为a(即如果增加xi秒后值大于a,则强制设置为a)。
另外强调,每秒钟事件的发生顺序如下:
(1)你选择一件工具(未使用过)并使用该工具,从而可以增加定时器的值。假如你选择使用第i件工具,使用工具前定时器的值为c秒,则使用该工具后定时器的值为:min(c+xi,a).
(2)定时器的值减1.
(3)如果定时器的值为0,则炸弹立即爆炸。
请问,商场人员撤离的最长时间是多少?即炸弹最多在多少秒之后会爆炸。
第一行一个整数t(1≤t≤2000):测试样例数;
每个测试样例2行:
第一行三个整数a,b和n(1≤b≤a≤109,2≤n≤100):a为定时器的最大值,b为定时器的初始值,n为你可以使用的工具数量;
第二行共n个整数x1,x2,…,xn(1≤xi≤1e9):xi为使用第i件工具可以增加的时间;
输出共t行,每个测试样例一行一个整数,为商场人员撤离的最长时间;
假设c为定时器的值,对于第一个测试样例,定时器的初始值为3,即c=3:
第1秒:可以选择使用工具1和工具2,c=3+1+1=5;然后定时器减1,c=4;
第2,3,4秒:每秒定时器都减1,则c=4-3=1;
第5秒,选择使用工具3,c=5;然后定时器减1,c=4;
第6,7,8秒:每秒定时器都减1,则c=4-3=1;
第9秒,定时器减1,c=1-1=0;炸弹爆炸。
因此,最大逃生时间为9秒。无论我们怎么安排使用工具的顺序和时间,没有比9更大的值了。