CFCF2183C.War Strategy
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
战争爆发了!你作为国家的最高将领,必须制定战略部署你的军队。
有 n 个基地排成一行,第 k 个基地是你的主基地。最开始,只有一个士兵驻扎在第 k 个基地。每天按照如下顺序发生:
- 你下达命令,选择一个基地 i(1≤i≤n),并选择该基地内任意数量的士兵(可以为 0,也可以为该基地全部士兵),然后命令这些士兵全部向相同方向移动:要么移动到 i−1 号基地,要么移动到 i+1 号基地。没有士兵能够移动到 1 号基地的左侧或 n 号基地的右侧。
- 之后,会有一名新的士兵加入到第 k 个基地。这名士兵不能被当天的命令调动。
不过时间紧迫,距离敌军进攻只剩下 m 天。一个基地如果驻有至少一名士兵,则称之为被加固。你的任务是,在第 m 天结束时,你最多能让多少个基地被加固(包括主基地)。
输入格式
每个测试用例包含多组数据。第一行包含测试组数 t(1≤t≤104)。接下来描述每组数据。
每组数据的第一行包含三个整数 n、m、k(1≤k≤n≤105,1≤m≤109),表示基地数量、你可以加固基地的天数,以及主基地的编号。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每组数据,输出第 m 天结束时你最多能加固的基地数量。
输入输出样例
输入#1
7 3 1 3 3 3 2 4 2 2 3 2 1 4 3 3 7 7 4 100000 1000000000 100000
输出#1
2 3 3 2 3 6 100000
说明/提示
在第二个测试用例中,以下为一种加固 3 个基地的方法:
- 第一天,命令第 3 号基地的 0 个士兵移动到第 2 号基地。一天结束时,一名新士兵加入第 2 号基地(此时第 2 号基地有 2 名士兵,其它基地为 0)。
- 第二天,命令第 2 号基地的 1 名士兵移动到第 1 号基地。一天结束时,一名新士兵加入第 2 号基地。此时第 2 号和第 1 号基地各有 2、1 名士兵。
- 第三天,命令第 2 号基地的 2 名士兵移动到第 3 号基地。一天结束时,一名新士兵加入第 2 号基地。现在第 1、2、3 号基地上分别有 1、2、2 名士兵。
- 现在第 1、2、3 号基地上都至少有一名士兵,因此答案为 3。
在第三个测试用例中,以下为一种让 3 个基地被加固的方法:
- 第一天,命令现有士兵从第 2 号基地移至第 3 号基地。一天结束时,有一名新士兵加入第 2 号基地。
- 第二天,命令第 2 号基地的士兵移动到第 1 号基地。一天结束时,有一名新士兵加入第 2 号基地。
- 现在第 1,2,3 号基地上都各有一名士兵,因此答案为 3。可以证明在第 2 天结束时,不可能有比 3 个基地更多的被加固。
以下是第三个测试用例的直观演示。
