문제
import sys
readl = sys.stdin.readline
n, d, k, c = map(int, readl().split())
sushi = [int(readl()) for _ in range(n)]
sushi += sushi[0 : k]
sol = 0
for s in sushi[0:k]:
ch[s] += 1
for i in range(n):
if len(set(sushi[i:i+k] + [c])) > sol:
sol = len(set(sushi[i:i+k] + [c]))
Sliding Window
import sys
readl = sys.stdin.readline
n, d, k, c = map(int, readl().split())
sushi = [int(readl()) for _ in range(n)]
ch = {}
for s in sushi:
ch[s] = 0
ch[c] = 0
sushi += sushi[0 : k]
sol = 0
for s in sushi[0:k]:
ch[s] += 1
종류 = len(set(sushi[0:k]))
existC = 0
for i in range(n):
ch[sushi[i]] -= 1
if ch[sushi[i]] == 0:
종류 -= 1
if ch[sushi[i + k]] == 0:
종류 += 1
ch[sushi[i + k]] += 1
if ch[c] == 0:
종류 += 1
existC = 1
if sol < 종류:
sol = 종류
if existC == 1:
종류 -= 1
existC = 0
print(sol)