問題概要
問題ページ
-
B - Easy Linear Programming
問題ページへ移動する
問題文
\(1\) が書かれたカードが \(A\) 枚、\(0\) が書かれたカードが \(B\) 枚、
\(-1\) が書かれたカードが \(C\) 枚あります。
これらのカードから、ちょうど \(K\) 枚を選んで取るとき、取ったカードに書かれた数の和として、
ありうる値の最大値はいくつですか。
制約
- 入力は全て整数である。
- \(0 \leq A, B, C\)
- \(1 \leq K \leq A + B + C \leq 2 \times 10^9\)
問題の考察
ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
a, b, c, k = list(map(int, input().rstrip('\n').split()))
t = min(k, a)
k = max(0, k - a)
k = max(0, k - b)
print(t - max(0, min(k, c)))
if __name__ == '__main__':
solve()