from collections import defaultdict from collections import deque import sys input = sys.stdin.readline N, D,K,C = map(int,input().split()) a = defaultdict(int) sushi = deque() max_value = 0 # D 초밥의 가짓수 # K 는 연속해서 먹은 초밥의 수 # C 쿠폰번호 sushi_dict = defaultdict(int) cnt = 0 sushi_list = [int(input()) for _ in range(N)] for left in range(N+K+1): sushi_input = sushi_list[left%N] if len(sushi)<K: sushi.append(sushi_input) if sushi_dict[sushi_input] == 0: cnt += 1 sushi_dict[sushi_input] += 1 if len(sushi) == K: if sushi_dict[C]>0: max_value = max(max_value,cnt) else: max_value = max(max_value,cnt+1) else: remove_sushi = sushi.popleft() sushi_dict[remove_sushi] -= 1 if sushi_dict[remove_sushi] == 0: cnt -= 1 sushi.append(sushi_input) if sushi_dict[sushi_input] == 0: cnt += 1 sushi_dict[sushi_input] += 1 if sushi_dict[C]>0: max_value = max(max_value,cnt) else: max_value = max(max_value,cnt+1) print(max_value)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 4803 트리 (0) | 2021.05.06 |
---|---|
[BOJ/백준] 16400 소수 화폐 (0) | 2021.05.05 |
[BOJ/백준] 14601 샤워실 바닥 깔기(Large) (0) | 2021.05.05 |
[BOJ/백준] 1717 집합의 표현 (0) | 2021.05.05 |
[BOJ/백준] 14595 동방 프로젝트(Large) (0) | 2021.05.05 |