考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC096-B - Maximum Sum を解く

ABC096-B - Maximum Sum

 

A , B , C の3つの数が与えられ、K回だけ3つの数のいずれかを

2倍することができる

操作終了後の A , B , C の和の最大値を求める問題

 

単純に考えて、一番大きい数をK回2倍すれば

A , B , C の和は最大になるはず

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
l=list(map(int,input().split()))
K=int(input())

# 最大値を求めるためソートする
l.sort()

# 一番大きい数をK回2倍する
for i in range(K):
  l[-1]*=2

# 和を出力
print(sum(l))

 

今回は、A , B , C をそれぞれ単独の変数に入れることはせず

リストで保存することにした

 

この方法であれば、ソートをするだけで3つのうち一番大きい数を

求めることができるので計算しやすい

 

提出結果はACでした