Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- s = set(map(int, input().split()))
- m = int(input())
- a = list(map(int, input().split()))
- s = list(s)
- s.sort()
- n = len(s)
- l = int(n**0.5)
- b = [] #l, idx_l, r, idx_r не включно, place_l
- for i in range(n//l+1 if n % l != 0 else n//l):
- b.append([])
- #0, 1
- if i == 0:
- b[i].append(s[0])
- b[i].append(0)
- else:
- b[i].append(s[b[i-1][3]])
- b[i].append(b[i-1][3])
- #2
- b[i].append(s[min((i+1)*l-1, n-1)])
- #3
- b[i].append(min(l*(i+1), n))
- #4
- b[i].append(n - b[i][1])
- b = b[::-1]
- for j in range(m):
- fl = 0
- #0
- if a[j] < s[0]:
- print(n+1)
- continue
- num = 0
- for k in range(len(b)):
- #1
- if a[j] == b[k][0]:
- print(b[k][4])
- fl = 1
- break
- if a[j] > b[k][0]:
- num = k
- #2
- if num == 0:
- print(1)
- fl = 1
- break
- if fl == 1:
- continue
- place = b[num][4]
- #3
- if a[j] in s:
- for q in range(b[k][1], b[k-1][1]):
- if s[q] == a[j]:
- print(n-q)
- break
- else:
- place = 0
- for q in range(b[k][1], b[k-1][1]):
- if s[q] > a[j]:
- place = n-q+2
- print(place if place != 0 else b[k-1][4]+1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement