172752025-06-09 19:54:06algoproGamepypy3Runtime error 30/1001.243s65536 KiB
# 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()

SubtaskSumTestVerdictTimeMemory
subtask110/10
1Accepted39ms19692 KiB
2Accepted45ms19688 KiB
subtask220/20
1Accepted78ms22224 KiB
2Accepted81ms22148 KiB
3Accepted87ms22100 KiB
4Accepted109ms22376 KiB
subtask30/70
1Accepted252ms24084 KiB
2Accepted263ms24948 KiB
3Accepted606ms33136 KiB
4Accepted712ms38476 KiB
5Runtime error1.116s65536 KiB
6Runtime error1.213s65536 KiB
7Runtime error1.243s65536 KiB
8Runtime error737ms65536 KiB
9Runtime error915ms65536 KiB
10Runtime error939ms65536 KiB
11Runtime error690ms65536 KiB
12Runtime error1.047s65536 KiB
13Runtime error981ms65536 KiB
14Runtime error819ms65536 KiB