AtCoder ABC 094 B – Toll Gates Python解説

スポンサーリンク

Toll Gates

N+1 個のマスが左右に一列に並んでいます. これらのマスには,左のマスから順に 0, 1, …, N の番号が付けられています.

あなたは,最初マス X にいます. 隣り合うマスの間は自由に移動することができ,マス 0 またはマス N にたどり着くとゴールすることができます.ただし,i = 1, 2, …, M について,マスAiには料金所があり,そのためマス Aiに移動してくる際には 1 のコストがかかります. なお,マス 0,マス X,マス N には料金所がないことが保証されます.

ゴールするまでにかかるコストの最小値を求めてください.

AtCoder Beginner Contest 「Toll Gates」

マスXより小さいマス目の料金所と、大きいマス目の料金所の数を数えてあげれば大丈夫です。

n, m, x = map(int, input().split())
a = list(map(int, input().split()))

left = 0
right = 0

for i in range(m):
    if a[i] < x:
        left += 1
    else:
        right += 1
        
print(min(left, right))

入力から料金所のマスaを受け取ったら、if文でマスXと比べています。マスXより小さければleft+1、大きければright+1しています。最後にmin関数で小さい方(コストが掛からない方)を出力して完了です。