题解 | 回合制游戏

#include <iostream>
using namespace std;

int main() {
    long long hp, normal, buffed;
    cin >> hp >> normal >> buffed;
    if (normal * 2 >= buffed) { // 一直用normal就行
        if (hp % normal > 0) {
            cout << hp / normal + 1 << endl;
        } else {
            cout << hp / normal << endl;
        }
    } else { // 尽量用buffed
        long long left = hp % buffed;
        if (left > normal) {
            cout << (hp / buffed) * 2 + 2 << endl;
        } else if (left == 0) {
            cout <<  (hp / buffed) * 2 << endl;
        } else {
            // 0< left <= normal < buffed/2
            cout << (hp / buffed) * 2 + 1 << endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务