# UUID: 49b32ea1-31c1-4340-ba3d-8d210a3e70fe
import sys
input = sys.stdin.readline
def upd(res, b, x):
if b % 2 == 1:
res[0] += x
else:
res[0] -= x
def main():
n, q = map(int, input().split())
vali = list(map(int, input().split()))
a = []
for i in range(1, n + 1):
a.append((vali[i-1], i))
a.sort(reverse=True)
del(vali)
vali = list(map(int, input().split()))
for ii in range(q):
pnt = x = vali[ii]
res = [0]
f = [False] * (n + 2)
for i in range(n):
val, pos = a[i]
while pnt <= n and f[pnt]:
pnt += 1
if pnt > n:
upd(res, i + 1, val)
elif pos > pnt:
upd(res, pos - x + 1, val)
f[pos] = True
else:
upd(res, pnt - x + 1, val)
f[pnt] = True
sys.stdout.write(str(res[0]) + '\n')
main()
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 10/10 | ||||||
| 1 | Accepted | 39ms | 19692 KiB | ||||
| 2 | Accepted | 45ms | 19688 KiB | ||||
| subtask2 | 20/20 | ||||||
| 1 | Accepted | 78ms | 22224 KiB | ||||
| 2 | Accepted | 81ms | 22148 KiB | ||||
| 3 | Accepted | 87ms | 22100 KiB | ||||
| 4 | Accepted | 109ms | 22376 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Accepted | 252ms | 24084 KiB | ||||
| 2 | Accepted | 263ms | 24948 KiB | ||||
| 3 | Accepted | 606ms | 33136 KiB | ||||
| 4 | Accepted | 712ms | 38476 KiB | ||||
| 5 | Runtime error | 1.116s | 65536 KiB | ||||
| 6 | Runtime error | 1.213s | 65536 KiB | ||||
| 7 | Runtime error | 1.243s | 65536 KiB | ||||
| 8 | Runtime error | 737ms | 65536 KiB | ||||
| 9 | Runtime error | 915ms | 65536 KiB | ||||
| 10 | Runtime error | 939ms | 65536 KiB | ||||
| 11 | Runtime error | 690ms | 65536 KiB | ||||
| 12 | Runtime error | 1.047s | 65536 KiB | ||||
| 13 | Runtime error | 981ms | 65536 KiB | ||||
| 14 | Runtime error | 819ms | 65536 KiB | ||||