けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 143 A - Curtain (灰色, 100 点)

また、関数 max() が使える案件。

問題概要

横の長さが  A であるカーテンレールに、横の長さが  B であるカーテン 2 枚を設置する。

カーテンレールのうち、カーテンが設置されていない部分の長さの最小値を求めよ。

解法

2 枚のカーテンを重ならないように設置すると、カーテンが設置されていない部分の長さは

 A - 2B

となる。これより小さくすることはできない。

また、この値が負になる場合には、カーテンが設置されていない部分の長さは 0 と考える必要がある。

まとめると、max(A - B * 2, 0) が答えとなる。if 文を用いて回答してもよい。

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

int main() {
    int A, B;
    cin >> A >> B;
    cout << max(A - B * 2, 0) << endl;
}