考えて競プロする

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

ABC074-B - Collecting Balls (Easy Version) を解く

ABC074-B - Collecting Balls (Easy Version)

 

問題文が長い…

プログラムを書くこと以上に、問題内容の理解の方が大変そうだ

 

…読んでみたがイマイチよくわからなかったので

サンプルの説明を読んでみた

 

入力形式

N

K

x1 x2  ...  xN

 

上記の形式で入力があったとき

x1 〜 xN について、xi と K-xi の小さい方を2倍したものの

総和を求めればいい、ということらしい

 

例えば、入力が

3

10

2 4 6

の場合を考えてみる

 

2 と 10 - 2 = 8 では、2 の方が小さい。これの2倍で 4

4 と 10 - 4 = 6 では、4 の方が小さい。これの2倍で 8

6 と 10 - 6 = 4 では、4 の方が小さい。これの2倍で 8

 

以上の合計は 4 + 8 + 8 = 20 となり、これが答えとなる、というわけだ

この処理をコードに落とし込めばいい

 

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

 

提出したコード

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

sm=0
for x in l:
  sm+=min(x,K-x)*2

# 出力
print(sm)

 

問題文を読んでもわからない場合は

入出力例を見てみることでわかる場合もある

(そこに詳しい説明が書かれていることもざらにある)

  

提出結果はACでした