【ABC160 E】「Red and Green Apples」を解く【Python3】

abc160e

「AtCoder」解説一覧へ

X個の赤色のリンゴと、Y個の緑色のリンゴを食べたいときに

  • 美味しさが「p1,p2,…,pA」の赤色リンゴA個
  • 美味しさが「q1,q2,…,qB」の緑色リンゴB個
  • 美味しさが「r1,r2,…,rC」の無色リンゴC個

があり、このとき、美味しさの総和が最大でいくつになるのかを求める問題です。

無色リンゴは着色することで、赤色リンゴもしくは緑色リンゴと見なすことができます。

提出
x, y, a, b, c = map(int, input().split())
p = list(map(int, input().split()))
q = list(map(int, input().split()))
r = list(map(int, input().split()))

p = sorted(p, reverse=True)[:x]
q = sorted(q, reverse=True)[:y]

total = sorted(p + q + r, reverse=True)[:x + y]
print(sum(total))

2行目以降のリンゴの美味しさをリストで受け取り、pとqは降順ソートして、それぞれxとyまでのリストにします。

この2つのリストの要素より大きい美味しさを持つ「無色リンゴ」を食べたいため、「p+q+r」を降順ソートし、大きい方から「x+y」を取得します。

こうすることで、無色リンゴより美味しくないものは除外されます。

最後に合計したものが答えです。

【ABC160】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

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