#2669. 乌鸦喝水
乌鸦喝水
【题目描述】
一只机械乌鸦,只会机械性执行任务。它的面前有一个容量为 m 的瓶子,初始时瓶子的水量为 x 。
有 n 次任务需要乌鸦执行。每次任务有一个参数 c_i,表示可以往瓶子中加入 c_i 的水,或者喝掉 c_i的水,乌鸦可以选择加入 c_i 的水或者喝掉 c_i 的水。加入或者喝掉 c_i 的水,得符合实际情况,如果加入 c_i 的水已经超过瓶子的容量了,则不能加入,如果瓶子里剩余的水不足 c_i了,也是不能喝掉的。
如果在执行某次任务时,即不能加入水也不能喝掉水,则任务失败。
请你计算,n 个任务完成后,水容器中的最大水量。
【输入格式】
第一行依次输入 n,x,m。 第二行依次输入 n 个值,代表每次任务给定的 c_i。
【输出格式】
输出一行一个整数,表示 n 个任务完成后瓶子中的最大水量。 如果有某个任务失败,则输出 -1。
【数据样例】
【输入数据 1】
3 3 9
1 1 5
【输出数据 1】
8
【输入数据 2】
3 1 15
7 12 14
【输出数据 2】
-1
【说明/提示】
##【样例 1 解释】 总共有 3 个任务,瓶子初始水量为 3, 最大容量为 9。第一次任务时可以喝掉容量为 1 的水,第二次任务时加入容量为 1 的水,第三次任务时加入容量为 5 的水。最后瓶子有容量为 8 的水。其他方案最后的值不会大于 8。
##【样例 2 解释】 总共有 3 个任务,瓶子初始水量为 1, 最大容量为 15。第一次任务时只能加入容量为 7 的水,第二次任务既不能加入也不能喝掉容量为 12 的水。所以无法完成所有任务。
【数据范围】
| 测试点编号 | 数据范围 |
|---|---|
| 1~2 | 1≤n≤5,1≤m≤40 |
| 3~4 | 1≤n≤10,1≤m≤100 |
| 5~6 | 1≤n≤20,1≤m≤500 |
| 7~10 | 1≤n≤50,1≤m≤1000 |
相关
在下列比赛中: