complete 26152.py
This commit is contained in:
44
zeta_python/completed/26152.py
Normal file
44
zeta_python/completed/26152.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from bisect import bisect_left
|
||||
|
||||
|
||||
def solve(N, A, B, Q, W):
|
||||
S = []
|
||||
before = 100000000000000000000
|
||||
for i, ab in enumerate(zip(A, B)):
|
||||
now = ab[0] - ab[1]
|
||||
if now > before:
|
||||
continue
|
||||
elif now == before:
|
||||
S.append((now, i + 1))
|
||||
else:
|
||||
S.append((now, i + 1))
|
||||
before = now
|
||||
|
||||
R = []
|
||||
rS = S[::-1]
|
||||
|
||||
for w in W:
|
||||
pos = bisect_left(rS, w, key=lambda x: x[0])
|
||||
if len(S) <= pos:
|
||||
R.append(0)
|
||||
continue
|
||||
if rS[pos][0] == w:
|
||||
if pos == 0:
|
||||
R.append(N)
|
||||
else:
|
||||
R.append(rS[pos - 1][1] - 1)
|
||||
else:
|
||||
if pos == 0:
|
||||
R.append(N)
|
||||
else:
|
||||
R.append(rS[pos - 1][1] - 1)
|
||||
return R
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
N = int(input())
|
||||
A = list(map(int, input().split()))
|
||||
B = list(map(int, input().split()))
|
||||
Q = int(input())
|
||||
W = list(map(int, input().split()))
|
||||
print(*solve(N, A, B, Q, W), sep="\n")
|
||||
Reference in New Issue
Block a user