LoginSignup
0
1

More than 3 years have passed since last update.

問題

$0, 1, \ldots, N$のマスが左右に一列に存在する。最初与えられた$X$にいて隣り合うマスには自由に移動ができる。移動している中で与えられたマス$A_i$を通る際にコストがかかるという問題設定。マス$0$またはマス$N$のどちらも目指すことができる場合、最小となるコストを求める問題。

方針

  1. マス$0とN$を目指すときのそれぞれのコストを求める
  2. 求めたコストを比較し、最小となるコストを出力する

工夫

$A_i$の中でXより小さい場合1となるリストと、Xより大きい場合1となるリストの2つを求め、それぞれsum()を取ることで、コストを算出する。

N, M, X = map(int, input().split())
A = list(map(int, input().split()))
to_zero = sum([1 for a in A if a < X]) # マス0に向かうときのコスト
to_n = sum([1 for a in A if a > X]) # マスNに向かうときのコスト
if to_zero >= to_n:
    print(to_n)
else:
    print(to_zero)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1