Codeforces Round #723 Potions (Hard/Easy) 题解 (Java/C++)

题解

首先,如果没有任何限制,我们当然会喝光所有的药水。而事实上,唯一的限制是生命值不能小于0。

那么什么时候生命值会小于0呢?显然是喝的正数的药水的总和小于了喝的负数的药水的总和。
那么,在喝第i瓶药的时候,如果喝完之后发现生命值小于0了,那么我们就把之前喝进去的负数的药水吐出来。而且每次我们都是吐绝对值最大的那一瓶毒药。

代码

Java

Submission #117684948 - Codeforces
Codeforces. Programming competitions and contests, programming community

C++

Submission #117726121 - Codeforces
Codeforces. Programming competitions and contests, programming community