투 포인터를 활용해 풀었습니다.
set을 활용해 중복을 제거해주고 쿠폰번호가 없다면 추가해준 후, set의 길이와 정답변수를 비교해 최댓값으로 저장해주고 포인터를 1 씩 늘립니다.
import sys
input = sys.stdin.readline
n, d, k, c = map(int, input().split())
sushi = []
for _ in range(n):
sushi.append(int(input()))
left, right = 0, k
answer = 0
while left < n:
s = set()
for i in range(left, right):
s.add(sushi[i%n])
if c not in s:
s.add(c)
answer = max(answer, len(s))
left += 1
right += 1
print(answer)