9661 2024. 02. 23 19:16:44 NagyLeo Óvoda python3 Futási hiba 46/50 330ms 67068 KiB
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