96622024-02-23 19:17:24NagyLeoÓvodapypy3Futási hiba 28/50118ms100912 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ÖsszpontTesztVerdiktIdőMemória
base28/50
1Elfogadva0/048ms76904 KiB
2Elfogadva0/081ms90828 KiB
3Elfogadva2/241ms78088 KiB
4Elfogadva2/246ms78052 KiB
5Elfogadva2/248ms78772 KiB
6Elfogadva2/248ms78120 KiB
7Elfogadva2/243ms78660 KiB
8Elfogadva2/239ms78744 KiB
9Elfogadva2/248ms79044 KiB
10Elfogadva2/248ms79272 KiB
11Elfogadva2/250ms79712 KiB
12Elfogadva2/243ms79476 KiB
13Elfogadva2/263ms88928 KiB
14Elfogadva3/364ms89112 KiB
15Elfogadva3/3118ms99832 KiB
16Futási hiba0/376ms100912 KiB
17Futási hiba0/368ms100424 KiB
18Futási hiba0/367ms100012 KiB
19Futási hiba0/364ms100644 KiB
20Futási hiba0/368ms95600 KiB
21Futási hiba0/364ms100188 KiB
22Futási hiba0/463ms95256 KiB