Codeforces Round #723 Potions (Hard/Easy) 题解 (Java/C++)
题解
首先,如果没有任何限制,我们当然会喝光所有的药水。而事实上,唯一的限制是生命值不能小于0。
那么什么时候生命值会小于0呢?显然是喝的正数的药水的总和小于了喝的负数的药水的总和。
那么,在喝第i瓶药的时候,如果喝完之后发现生命值小于0了,那么我们就把之前喝进去的负数的药水吐出来。而且每次我们都是吐绝对值最大的那一瓶毒药。
代码
Java
C++
首先,如果没有任何限制,我们当然会喝光所有的药水。而事实上,唯一的限制是生命值不能小于0。
那么什么时候生命值会小于0呢?显然是喝的正数的药水的总和小于了喝的负数的药水的总和。
那么,在喝第i瓶药的时候,如果喝完之后发现生命值小于0了,那么我们就把之前喝进去的负数的药水吐出来。而且每次我们都是吐绝对值最大的那一瓶毒药。
Java
C++