https://csacademy.com/contest/round-55/task/red-blue-teams/
N人の子供がいて、R人は赤、N-R人は青である。
丁度K人の子供の色を最適にswapすることで、赤の子供を最小何人、最大何人にできるか。
子供につきswapが1回ずつとする。
N≦10^5
解法
青の子供をB人とする。(B = N-R)
最小
K≦Rであれば、Rの子供を全てswapするとよい。つまり、R-Kが答え。
そうでないなら、Rの子供を全てswapして、残りの回数でBの子供をswapする。つまり、K-Rが答え。
最大
K≦Bであれば、Bの子供を全てswapするとよい。つまり、R+Kが答え。
そうでないなら、Bの子供を全てswapして、残りの回数でRの子供をswapする。つまり、B+(R-(K-B))が答え。
int N, R, K; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N >> R >> K; int B = N - R; int mi, ma; if (K <= B) ma = R + K; else ma = B + (R - (K - B)); if (K <= R) mi = R - K; else mi = K - R; cout << mi << " " << ma << endl; }