Problem: Given are an integer X and an integer sequence of length N: p_1, \ldots, p_N.  Among the integers not contained in the sequence p_1, \ldots, p_N (not necessarily positive), find the integer nearest to X, that is, find the integer whose absolute difference with X is the minimum. If there are multiple such integers, report the smallest such integer.

Submission attempts (in order):
# -*- coding: utf-8 -*-

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

P_set = list(set(P))
#print(P_set)
#print(P_set[1])

ans_chk = 0

if ( X < P[0] or X > P[N-1] ):
  print(X)
  ans_chk = 1

if ( ans_chk==0 ):
  for i in range(len(P)):
    if ( P_set[i] == X ):
      X_i = i
      break
    elif ( P_set[i] > X ):
      print(X)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  
  if ( X_i >= N-(X_i+1) ):
    M = N-(X_i+1)
    temp_ans = X + N-(X_i+1) +1
  else:
    M = X_i
    temp_ans = X - X_i -1
  
  for i in range(1,M+1):
    if ( P_set[ X_i -i ] != X-i ):
      print(X-i)
      ans_chk = 1
      break
    elif ( P_set[ X_i +i ] != X+i ):
      print(X+i)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  print(temp_ans)

# -*- coding: utf-8 -*-

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

P_set = list(set(P))
#print(P_set)
#print(P_set[1])

ans_chk = 0

if ( X < P_set[0] or X > P_set[N-1] ):
  print(X)
  ans_chk = 1

if ( ans_chk==0 ):
  for i in range(len(P)):
    if ( P_set[i] == X ):
      X_i = i
      break
    elif ( P_set[i] > X ):
      print(X)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  
  if ( X_i >= N-(X_i+1) ): 
    M = N-(X_i+1)
    temp_ans = X + N-(X_i+1) +1
    
    
    for i in range(1,M+1):
      print(i)
      if ( P_set[ X_i -i ] != X-i ):
        print(X-i)
        ans_chk = 1
        break
      elif ( P_set[ X_i +i ] != X+i ):
        print(X+i)
        ans_chk = 1
        break
    
    if ( ans_chk==0 ):
      if ( P_set[ X_i -(M+1) ] != X-(M+1) ):
        print( X-(M+1) )
        ans_chk = 1


  else: 
    M = X_i
    temp_ans = X - X_i -1
    
  
    for i in range(1,M+1):
      print(i)
      if ( P_set[ X_i -i ] != X-i ):
        print(X-i)
        ans_chk = 1
        break
      elif ( P_set[ X_i +i ] != X+i ):
        print(X+i)
        ans_chk = 1
        break

if ( ans_chk==0 ):
  print(temp_ans)

# -*- coding: utf-8 -*-

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

if( N == 0 ):
  #print("N=0")
  print(X)

else:
  P = list(map(int,input().split()))
  P_set = list(set(P))
  
  
  ans_chk = 0
  
  if ( X < P_set[0] or X > P_set[N-1] ):
    #print("X < P_set[0] or X > P_set[N-1]")
    print(X)
    ans_chk = 1
  
  if ( ans_chk==0 ):
    for i in range(N):
      if ( P_set[i] == X ):
        X_i = i
        break
      elif ( P_set[i] > X ):
        #print("P_set[i] > X")
        print(X)
        ans_chk = 1
        break
  
  if ( ans_chk==0 ):
    
    if ( X_i > N-(X_i+1) ): 
      M = N-(X_i+1)
      temp_ans = X + N-(X_i+1) +1
      
      
      for i in range(1,M+1):
        if ( P_set[ X_i -i ] != X-i ):
          print(X-i)
          ans_chk = 1
          break
        elif ( P_set[ X_i +i ] != X+i ):
          print(X+i)
          ans_chk = 1
          break
      
      if ( ans_chk==0 ):
        if ( P_set[ X_i -(M+1) ] != X-(M+1) ):
          print( X-(M+1) )
          ans_chk = 1
  
  
    else: 
      M = X_i
      temp_ans = X - X_i -1
      
    
      for i in range(1,M+1):
        if ( P_set[ X_i -i ] != X-i ):
          print(X-i)
          ans_chk = 1
          break
        elif ( P_set[ X_i +i ] != X+i ):
          print(X+i)
          ans_chk = 1
          break
  
  if ( ans_chk==0 ):
    print(temp_ans)

Verdicts: Runtime Error

Runtime Error

Accepted