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関数で小さい方(コストが掛からない方)を出力して完了です。