def main():
N, K = map(int, input().split())
roles = list(map(int, input().split())) # K hosszu
chosen = list(map(lambda x: int(x) - 1, input().split())) # N hosszú
crying_time = list(map(int, input().split())) # N hosszu
merged = [0] * N
leftout = []
roles_av = set(range(K))
for i in range(N):
merged[i] = (chosen[i], crying_time[i], i)
merged.sort(key=lambda x: -x[1])
cry = 0
res = [-1] * N
for i in range(N):
# print(i,merged[i],res,roles_av,leftout, roles,len(roles_av), N-i-len(leftout))
if len(roles_av) < N - i + len(leftout):
if roles[merged[i][0]] > 0:
roles[merged[i][0]] -= 1
roles_av.discard(merged[i][0])
res[merged[i][2]] = merged[i][0] + 1
else:
cry += merged[i][1]
leftout.append(merged[i])
else:
if merged[i][0] in roles_av:
roles[merged[i][0]] -= 1
roles_av.discard(merged[i][0])
res[merged[i][2]] = merged[i][0] + 1
else:
cry += merged[i][1]
leftout.append(merged[i])
# rint('--------',i,merged[i],res,roles_av,leftout, roles)
# print(len(roles_av),len(leftout))
for i in roles_av:
res[leftout[-1][2]] = i + 1
roles[i] -= 1
leftout.pop()
index = 0
for i in leftout:
while roles[index] == 0:
index += 1
res[i[2]] = index + 1
roles[index] -= 1
print(cry)
print(*res)
main()
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 46/50 | ||||||
1 | Elfogadva | 0/0 | 18ms | 11580 KiB | |||
2 | Elfogadva | 0/0 | 32ms | 14724 KiB | |||
3 | Elfogadva | 2/2 | 18ms | 11792 KiB | |||
4 | Elfogadva | 2/2 | 17ms | 12108 KiB | |||
5 | Elfogadva | 2/2 | 18ms | 12496 KiB | |||
6 | Elfogadva | 2/2 | 17ms | 12896 KiB | |||
7 | Elfogadva | 2/2 | 17ms | 12772 KiB | |||
8 | Elfogadva | 2/2 | 17ms | 12940 KiB | |||
9 | Elfogadva | 2/2 | 17ms | 12680 KiB | |||
10 | Elfogadva | 2/2 | 17ms | 13308 KiB | |||
11 | Elfogadva | 2/2 | 18ms | 13188 KiB | |||
12 | Elfogadva | 2/2 | 17ms | 13072 KiB | |||
13 | Elfogadva | 2/2 | 19ms | 13912 KiB | |||
14 | Elfogadva | 3/3 | 20ms | 13744 KiB | |||
15 | Elfogadva | 3/3 | 52ms | 20688 KiB | |||
16 | Elfogadva | 3/3 | 96ms | 31636 KiB | |||
17 | Elfogadva | 3/3 | 145ms | 34404 KiB | |||
18 | Elfogadva | 3/3 | 234ms | 48716 KiB | |||
19 | Elfogadva | 3/3 | 257ms | 52708 KiB | |||
20 | Elfogadva | 3/3 | 291ms | 52640 KiB | |||
21 | Elfogadva | 3/3 | 330ms | 62912 KiB | |||
22 | Futási hiba | 0/4 | 149ms | 67068 KiB |