23532023-01-10 22:43:31kristofKarácsonyi égőkpython3Hibás válasz 70/100321ms60120 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
1Elfogadva17ms11248 KiB
2Elfogadva17ms11676 KiB
subtask215/15
3Elfogadva282ms18336 KiB
4Elfogadva263ms18376 KiB
5Elfogadva277ms18568 KiB
6Elfogadva17ms12272 KiB
7Elfogadva17ms12692 KiB
subtask310/10
8Elfogadva17ms12508 KiB
9Elfogadva17ms12628 KiB
10Elfogadva17ms12732 KiB
11Elfogadva17ms12960 KiB
12Elfogadva16ms12880 KiB
subtask420/20
13Elfogadva17ms13332 KiB
14Elfogadva17ms13364 KiB
15Elfogadva17ms13460 KiB
16Elfogadva17ms13908 KiB
17Elfogadva17ms13516 KiB
subtask525/25
18Elfogadva23ms14644 KiB
19Elfogadva24ms14620 KiB
20Elfogadva24ms14644 KiB
21Elfogadva25ms14524 KiB
22Elfogadva24ms14348 KiB
subtask60/30
23Hibás válasz244ms58024 KiB
24Elfogadva209ms52752 KiB
25Elfogadva232ms57944 KiB
26Elfogadva237ms60120 KiB
27Elfogadva228ms60108 KiB
28Elfogadva224ms57740 KiB
29Elfogadva321ms52744 KiB
30Elfogadva216ms20800 KiB