#HK4955. 「EGOI2023」糖果
「EGOI2023」糖果
题目描述
题目译自 European Girls' Olympiad in Informatics 2023 Day2 T2. Candy
在古老的伊卡城,传说有一座富丽堂皇的宫殿,藏有令人难以想象的财富。宫殿内有一条走廊,摆放着 个来自世界各地的糖果盒。路过的旅人可以随意拿取糖果,前提是用等重的黄金支付。
糖果盒从左到右编号为 到 。第 个盒子中剩余 单位糖果,其中 是一个非负整数。
作为宫殿的守护者,你希望重新排列这些盒子,让装有更多糖果的盒子靠近入口。
你将获得数组 以及数字 和 。在一次操作中,你可以交换数组 中两个相邻的元素。你的任务是求出最少需要多少次操作,使数组前 个元素的总和至少达到 。
输入格式
第一行包含三个整数 。
第二行包含 个整数 。
输出格式
如果无法通过操作达成目标,输出 NO。
否则,输出一个整数,表示最少操作次数。
6 2 27
10 4 20 6 3 3
1
目标是使前两个元素总和至少为 。通过一次相邻元素交换即可实现:交换 和 。交换后,数组变为 10 20 4 6 3 3,前两个元素总和为 。
6 5 5000000000
1000000000 1000000000 0 1000000000 1000000000 1000000000
3
目标是使第一个元素至少为 。必须将 移动到数组开头,这需要三次交换。
3 2 100
20 30 60
NO
目标是使前两个元素总和至少为 。但最多只能达到 ,因此不可能实现。
1 1 100
100
0
数据范围与提示
注意:输入的数字可能超出 32 位整数范围,如果使用 C++,请注意溢出问题。
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 且对于 , 且 | ||
| 对于 , | ||
| 对于 , | ||
| 无附加限制 |