CF382B题解

· · 题解

题目传送门

分析

本题是一道简单的循环结构题。

题目中说直到 c \le a 时已走过的秒数,那么首当其冲肯定想到的是……

while (c > a) {
    _____
    _____
}

至于剩下的,就直接按题意模拟就好。

(直接把题里的式子复制进去不就得了)

另外,我们需要一个计数器来存储秒数,每次循环 + 1。

代码

#include <iostream>
#define int long long
using namespace std;

int a, b, w, x, c;
int miao = 0;//记录过去的秒数

signed main() {//由于图省事用了define,这里需用signed。(根据个人喜好选择)
    scanf("%lld%lld%lld%lld%lld", &a, &b, &w, &x, &c);
    while (c > a) {
        if (b < x) {//b < x情况
                        a -= 1;
            c -= 1;
            b = w - (x - b);
        } else {//b >= x情况
            b -= x;
            c -= 1;
        }
        miao++;//每次循环秒数+1
    }
    printf("%lld", miao);
    return 0;
}
//禁止抄袭题解,共创文明洛谷

注:这里是个人习惯性开 longlong ,由于没有数据范围,没测过 int 能不能过。