23762023-01-11 23:04:54kristofKarácsonyi égőkpython3Elfogadva 100/100347ms60080 KiB
N, C = map(int, input().strip().split())
L = list(map(int, input().strip().split()))

minTav = N
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
1Elfogadva17ms11952 KiB
2Elfogadva17ms12232 KiB
subtask215/15
3Elfogadva261ms18752 KiB
4Elfogadva270ms19004 KiB
5Elfogadva263ms19136 KiB
6Elfogadva17ms12472 KiB
7Elfogadva17ms12976 KiB
subtask310/10
8Elfogadva17ms12872 KiB
9Elfogadva17ms12984 KiB
10Elfogadva17ms13228 KiB
11Elfogadva17ms13200 KiB
12Elfogadva17ms13336 KiB
subtask420/20
13Elfogadva17ms13596 KiB
14Elfogadva17ms13712 KiB
15Elfogadva17ms13780 KiB
16Elfogadva17ms13972 KiB
17Elfogadva17ms14140 KiB
subtask525/25
18Elfogadva21ms15380 KiB
19Elfogadva24ms15220 KiB
20Elfogadva23ms15100 KiB
21Elfogadva25ms14904 KiB
22Elfogadva24ms14400 KiB
subtask630/30
23Elfogadva246ms58040 KiB
24Elfogadva223ms52120 KiB
25Elfogadva224ms57820 KiB
26Elfogadva243ms60008 KiB
27Elfogadva231ms60080 KiB
28Elfogadva216ms57888 KiB
29Elfogadva347ms53092 KiB
30Elfogadva214ms21052 KiB