题解 | 回合制游戏

#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")

全部评论

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务