Advertisement
Egor_1425

Untitled

Aug 1st, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.58 KB | None | 0 0
  1. n = int(input())
  2. a = map(int, input().split())
  3. m = int(input())
  4. b = list(map(int, input().split()))
  5. for i in range(len(b)):
  6.     b[i] = [i + 1, b[i]]
  7. b.sort(key=lambda x: x[1])
  8.  
  9.  
  10. def find_value(x):
  11.     if(x < b[0][1]):
  12.         return b[0][0]
  13.     if(x > b[-1][1]):
  14.         return b[-1][0]
  15.     l = 0
  16.     r = len(b) - 1
  17.     while(r - l > 1):
  18.         m = (r + l) >> 1
  19.         if(b[m][1] < x):
  20.             l = m
  21.         else:
  22.             r = m
  23.     if(x - b[l][1] < b[r][1] - x):
  24.         return b[l][0]
  25.     else:
  26.         return b[r][0]
  27.  
  28.  
  29. print(*[find_value(v) for v in a])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement