Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. n = int(input())
  2. houses = [x for x in enumerate(map(int, input().split()))]
  3. m = int(input())
  4. safe = [x for x in enumerate(map(int, input().split()))]
  5. best = [0]*n
  6. # you are supposed to sort both lists
  7. houses.sort(key=lambda v: v[1])
  8. safe.sort(key=lambda v: v[1])
  9. j = 0
  10. for i in range(n):
  11. while (safe[j][1] <= houses[i][1]) and j < m - 1:
  12. j += 1
  13. if j > 0 and safe[j][1] - houses[i][1] > houses[i][1] - safe[j - 1][1]:
  14. j -= 1
  15. best[houses[i][0]] = safe[j][0] + 1
  16. print(*best)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement