9664 2024. 02. 23 19:37:04 python Óvoda python3 Hibás válasz 28/50 319ms 67420 KiB
# O(NlogN?) moho

from sys import stdin, stdout
input=stdin.readline

from math import gcd

def solv():
    N,K = [int(x) for x in input().split()]
    maxi = [int(x) for x in input().split()]
    szerep = [int(x)-1 for x in input().split()]
    sir = [(int(x),index) for index,x in enumerate(input().split())]
    sir.sort(reverse=True)
    #print(sir)
    szerep_set=set(szerep)
    not_choosen=set()
    for i in range(1,K):
        if i not in szerep_set:
            not_choosen.add(i)
    #print(not_choosen)
    res=0
    lista=[0]*N
    done=set()
    sirnifog=[]
    for i in range(len(sir)):
        #print(sir[i],lista,len(done),len(not_choosen),len(sirnifog))
        s,index=sir[i]
        #if len(done)+len(not_choosen)+len(sirnifog)==N and len(not_choosen)>len(sirnifog):
        if K-len(done)-len(sirnifog)==N-i:
            x=not_choosen.pop()
            lista[index]=x
            done.add(index)
            res+=s
        elif maxi[szerep[index]]>0:
            maxi[szerep[index]]-=1
            lista[index]=szerep[index]
            done.add(index)
        else:
            sirnifog.append(index)
            res+=s
    index=0
    while sirnifog:
        x=sirnifog.pop()
        if not_choosen:
            y=not_choosen.pop()
            maxi[y]-=1
            lista[x]=y
        else:
            while maxi[index]==0:
                index+=1
            maxi[index]-=1
            lista[x]=index
    print(res)
    print(*[x+1 for x in lista])

    return

solv()
Részfeladat Összpont Teszt Verdikt Idő Memória
base 28/50
1 Elfogadva 0/0 18ms 11476 KiB
2 Elfogadva 0/0 32ms 15588 KiB
3 Elfogadva 2/2 18ms 12000 KiB
4 Elfogadva 2/2 18ms 12168 KiB
5 Elfogadva 2/2 17ms 12172 KiB
6 Elfogadva 2/2 17ms 12328 KiB
7 Hibás válasz 0/2 17ms 12188 KiB
8 Elfogadva 2/2 17ms 12556 KiB
9 Futási hiba 0/2 17ms 12724 KiB
10 Elfogadva 2/2 17ms 12584 KiB
11 Elfogadva 2/2 17ms 12976 KiB
12 Elfogadva 2/2 17ms 12928 KiB
13 Hibás válasz 0/2 19ms 13904 KiB
14 Elfogadva 3/3 19ms 13440 KiB
15 Hibás válasz 0/3 54ms 21852 KiB
16 Hibás válasz 0/3 98ms 31208 KiB
17 Elfogadva 3/3 149ms 42424 KiB
18 Hibás válasz 0/3 224ms 55936 KiB
19 Elfogadva 3/3 300ms 63164 KiB
20 Elfogadva 3/3 319ms 56440 KiB
21 Futási hiba 0/3 273ms 67420 KiB
22 Futási hiba 0/4 217ms 67412 KiB