if
文を使うか、関数 max()
を使えば OK
問題概要
水を入れる容器が 2 つある。
容器 1 には水を ミリリットルまで入れることができ、水が ミリリットル入っている。
容器 2 には水が ミリリットル入っている。
容器 2 から容器 1 に入るだけ水を移すと、容器 2 の中には何ミリリットルの水が残るか?
解法
容器 1 の空き容量は ミリリットルである。よって、容器 1 が満杯になるまで水をうつすと、容器 2 の残水量は
ミリリットル
となる。ただし、これが負の値になることはない。よって、答えは
max(C - (A - B), 0)
ミリリットル
である。このように、負の値になることがない値に対して、関数 max()
を用いて調節するのは今後定石となる。
#include <bits/stdc++.h> using namespace std; int main() { int A, B, C; cin >> A >> B >> C; cout << max(C - (A - B), 0) << endl; }