整数列 p1,…,pN に含まれない整数のうち、Xとの差の絶対値が最小のものを求める問題です。
複数存在する場合は、そのうち小さいものを答えます。
提出
x, n = map(int, input().split())
p = list(map(int, input().split()))
for i in range(100):
num = x-i
if num not in p:
print(num)
exit()
num = x+i
if num not in p:
print(num)
exit()
整数列piをリストとして受け取ります。
xとの差の絶対値が最小のもの、ということで、「x-i」「x+i」が、リストpの中にあるかどうかを判定します。
pの中になければ、これらが答えになります。
「複数ある場合は、そのうち小さいもの」という制約があるため、「x-i」を先に判定しています。
処理はほとんど変わりませんが、以下のように短く書くこともできます。
提出
x, n = map(int, input().split())
p = list(map(int, input().split()))
for i in range(x+1):
for j in [-1, +1]:
num = x+i*j
if num not in p:
print(num)
exit()