【ABC167 B】「Easy Linear Programming」を解く【Python3】

「AtCoder」解説一覧へ

A,B,C のカードからK枚選んだとき、カードの和としてありうる最大値を求める問題です。

提出
a, b, c, k = map(int, input().split())

if a >= k:
    print(k)
else:
    print(a-((k-a)-b))

最大値を求めたいので、1が書かれている「A (=a)」を最初に選びたいです。

kよりaの方が大きければ、すべて「1」が書かれているので、答えは「k」になります。

kの方が大きい場合、aをすべて選んだあとに、bを選び、それでも足りない場合にcを選びます。

bは0であるため、「aの枚数」から「cの枚数((k-a)-b)」を引いたものが答えになります。

【ABC167】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です