2376 2023. 01. 11 23:04:54 kristof Karácsonyi égők python3 Elfogadva 100/100 347ms 60080 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 17ms 11952 KiB
2 Elfogadva 17ms 12232 KiB
subtask2 15/15
3 Elfogadva 261ms 18752 KiB
4 Elfogadva 270ms 19004 KiB
5 Elfogadva 263ms 19136 KiB
6 Elfogadva 17ms 12472 KiB
7 Elfogadva 17ms 12976 KiB
subtask3 10/10
8 Elfogadva 17ms 12872 KiB
9 Elfogadva 17ms 12984 KiB
10 Elfogadva 17ms 13228 KiB
11 Elfogadva 17ms 13200 KiB
12 Elfogadva 17ms 13336 KiB
subtask4 20/20
13 Elfogadva 17ms 13596 KiB
14 Elfogadva 17ms 13712 KiB
15 Elfogadva 17ms 13780 KiB
16 Elfogadva 17ms 13972 KiB
17 Elfogadva 17ms 14140 KiB
subtask5 25/25
18 Elfogadva 21ms 15380 KiB
19 Elfogadva 24ms 15220 KiB
20 Elfogadva 23ms 15100 KiB
21 Elfogadva 25ms 14904 KiB
22 Elfogadva 24ms 14400 KiB
subtask6 30/30
23 Elfogadva 246ms 58040 KiB
24 Elfogadva 223ms 52120 KiB
25 Elfogadva 224ms 57820 KiB
26 Elfogadva 243ms 60008 KiB
27 Elfogadva 231ms 60080 KiB
28 Elfogadva 216ms 57888 KiB
29 Elfogadva 347ms 53092 KiB
30 Elfogadva 214ms 21052 KiB