27612023-01-21 22:23:15rennKarácsonyi égőkpython3Accepted 100/100202ms59556 KiB
N, C = map(int, input().strip().split())
szinek = list(map(int, input().strip().split()))

szindarab = [0 for i in range(0, C)]

K = 0
M = N
L = 0

for i in range(0, N):
    if szindarab[szinek[i]] == 0:
        K += 1
    szindarab[szinek[i]] += 1
    if K != C:
        continue
    while K == C:
        szindarab[szinek[L]] -= 1
        if szindarab[szinek[L]] == 0:
            K -= 1
        L += 1
    M = min(M, i - L)

print(M + 2)
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted17ms11164 KiB
2Accepted17ms11400 KiB
subtask215/15
3Accepted163ms19944 KiB
4Accepted165ms19768 KiB
5Accepted162ms19976 KiB
6Accepted17ms11792 KiB
7Accepted17ms12132 KiB
subtask310/10
8Accepted17ms12388 KiB
9Accepted17ms12700 KiB
10Accepted17ms12688 KiB
11Accepted17ms12624 KiB
12Accepted17ms13056 KiB
subtask420/20
13Accepted17ms12704 KiB
14Accepted17ms12924 KiB
15Accepted17ms13160 KiB
16Accepted17ms13080 KiB
17Accepted17ms12948 KiB
subtask525/25
18Accepted19ms14384 KiB
19Accepted19ms14428 KiB
20Accepted19ms14480 KiB
21Accepted20ms14180 KiB
22Accepted19ms13692 KiB
subtask630/30
23Accepted172ms57208 KiB
24Accepted150ms52124 KiB
25Accepted157ms57364 KiB
26Accepted157ms59244 KiB
27Accepted158ms59556 KiB
28Accepted148ms57128 KiB
29Accepted202ms52248 KiB
30Accepted130ms21848 KiB