[AtCoder] ARC 109 A – Hands

2020年12月12日

問題

方針

廊下だけを使うか、廊下と階段を使うかの \( 2 \) 通りを考えます。階段を使う場合は、廊下を先に通り、残りは階段を使います。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
    int a, b, x, y;
    cin >> a >> b >> x >> y;
    if (a == b) {
        cout << x << "\n";
    } else if (a > b) {
        int d = a - b;
        cout << min(x + (d - 1) * y, (2 * d - 1) * x) << "\n";
    } else {
        int d = b - a;
        cout << min(x + d * y, (2 * d + 1) * x) << "\n";
    }
    return 0;
}