if
文や else if
文の練習!
問題概要
高橋君は 枚、青木君は 枚のクッキーをもっている。
高橋君は 回次の行動をとる。
- 自分のクッキーが残っていたら、それを 1 枚食べる
- 残っていなくて、青木君のクッキーが残っていたら、それを 1 枚食べる
- どちらのクッキーも残っていなかったら、何もしない
操作後の高橋君、青木君のクッキーの枚数を求めよ。
制約
考えたこと
次のように考えよう。
- のとき:高橋君は自分の分のクッキのみ食べる
- 高橋君:残り 枚
- 青木君:残り 枚
- のとき:高橋君は自分の分のクッキーを食べ尽くして青木君のクッキーも食べる
- 高橋君:残り 0 枚
- 青木君:残り 枚
- のとき:高橋君はすべてのクッキーを食べ尽くす
- 高橋君:残り 0 枚
- 青木君:残り 0 枚
なお、2 番目と 3 番目については、まとめて次のように考えても良い。
- 高橋君:残り 0 枚
- 青木君:残り 枚
コード
の制約が と大きいので、C++ では int
型を用いるとオーバーフローしてしまうことに注意しよう。代わりに long long
型を用いている。
#include <bits/stdc++.h> using namespace std; int main() { long long A, B, K; cin >> A >> B >> K; if (K <= A) cout << A-K << " " << B << endl; else cout << 0 << " " << max(A+B-K, 0LL) << endl; }