AtCoder Beginner Contest 094 C - Many Medians【Python】

https://atcoder.jp/contests/abc094/tasks/arc095_a

AtCoder ProblemsのRecommendationで Difficulty: 566、Solve Probability:40%でした。

N個の数をソートしたものを考えると、中央の2つの値のうち小さい方をmed1、大きい方をmed2とするとXiがmed1以下であればmed2を出力、Xiがmed2以上であればmed1を出力すると答えになりました。

N = int(input())
X = list(map(int, input().split()))

sorted_X = sorted(X)
# Xiを除く前の中央の値のうち小さい方
med1 = sorted_X[len(X)//2 - 1]
# Xiを除く前の中央の値のうち大きい方
med2 = sorted_X[len(X)//2]
for x in X:
    if x <= med1:
        print(med2)
    else:
        print(med1)