22942023-01-09 20:05:43neszbalKarácsonyi égőkpython3Hibás válasz 70/100331ms59592 KiB
N, C = map(int, input().strip().split())
L = list(map(int, input().strip().split()))

minTav = 2e5
nyilvantartoLista = [0 for i in range(C+1)]
mostTav = 0
mostTavRovidites = 0
benneVanSzam = 0

for i in range(N):
    while mostTav < N and benneVanSzam < C:
        
        if nyilvantartoLista[L[mostTav]] == 0:
            benneVanSzam += 1

        nyilvantartoLista[L[mostTav]] += 1
        mostTav += 1

    if benneVanSzam == C:
        minTav = min(minTav, mostTav - mostTavRovidites)

    while mostTavRovidites < mostTav and benneVanSzam == C:
        nyilvantartoLista[L[mostTavRovidites]] -= 1
        if nyilvantartoLista[L[mostTavRovidites]] == 0:
            benneVanSzam -= 1
        mostTavRovidites += 1
        if benneVanSzam == C:
            minTav = min(minTav, mostTav - mostTavRovidites)

print(minTav)


RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva18ms11136 KiB
2Elfogadva17ms11428 KiB
subtask215/15
3Elfogadva266ms17792 KiB
4Elfogadva273ms18024 KiB
5Elfogadva266ms18340 KiB
6Elfogadva18ms12136 KiB
7Elfogadva17ms12436 KiB
subtask310/10
8Elfogadva17ms12632 KiB
9Elfogadva17ms12492 KiB
10Elfogadva17ms12600 KiB
11Elfogadva17ms12828 KiB
12Elfogadva17ms12744 KiB
subtask420/20
13Elfogadva17ms12820 KiB
14Elfogadva17ms12956 KiB
15Elfogadva17ms13064 KiB
16Elfogadva17ms13296 KiB
17Elfogadva17ms13296 KiB
subtask525/25
18Elfogadva21ms14364 KiB
19Elfogadva24ms14280 KiB
20Elfogadva21ms14280 KiB
21Elfogadva24ms13800 KiB
22Elfogadva23ms13324 KiB
subtask60/30
23Hibás válasz246ms57092 KiB
24Elfogadva216ms51648 KiB
25Elfogadva219ms57260 KiB
26Elfogadva238ms59516 KiB
27Elfogadva231ms59592 KiB
28Elfogadva226ms57084 KiB
29Elfogadva331ms52196 KiB
30Elfogadva214ms19892 KiB