만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

캔디 러시

면접 대비

시간 제한2.5초메모리 제한1024 MB

요약
정확히 K개의 브랜드가 각각 같은 횟수로 등장하는 가장 긴 연속 구간의 길이를 구합니다.
난이도

보통10점 중 5점

유형
슬라이딩 윈도우, 해시맵, 배열
정답자
아직 제출이 없습니다

문제

퇴근 시간이다! 직장 일을 마치고, 쇼핑몰이 문을 닫기 전에 가족 모두에게 줄 사탕을 사야 한다.

가족은 단일성과 균일함을 중요하게 여긴다. 그래서 각 가족 구성원은 한 브랜드의 사탕만 받아야 하고, 그 브랜드의 사탕은 다른 구성원이 받을 수 없다. 또한 누구를 더 아끼는 티를 내고 싶지 않으므로, 모든 구성원이 같은 개수의 사탕을 받아야 한다.

쇼핑몰에는 KK개의 서로 다른 브랜드 사탕을 파는 매장이 있고, 가족 구성원은 정확히 KK명이다. 쉬워 보이지만 함정이 있다.

매장은 사탕을 한 줄 선반에 진열한다. 사탕을 하나씩 고를 시간이 없어서 연속된 사탕 묶음을 한 번에 산다. 두 사탕을 사면 그 사이에 있는 사탕도 모두 사야 한다.

살 수 있는 사탕의 최대 개수는 얼마인가?

입력

첫 줄에 두 정수 NN과 KK가 주어진다 (1≤N,K≤4×1051 \le N, K \le 4 \times 10^5). NN은 선반에 놓인 사탕의 개수이고, KK는 가족 구성원의 수이다. 브랜드는 1부터 KK까지의 서로 다른 정수로 구분된다.

둘째 줄에는 선반에서 왼쪽부터 오른쪽 순서로 각 사탕의 브랜드 C1,C2,…,CNC_1, C_2, \ldots, C_N (1≤Ci≤K1 \le C_i \le K)이 주어진다.

출력

살 수 있는 사탕의 최대 개수를 한 줄에 출력한다. 가족 구성원 한 명이 서로 다른 두 브랜드를 받을 수 없고, 한 브랜드를 두 명 이상에게 줄 수 없다. 모든 구성원이 같은 개수의 사탕을 받아야 하며, 산 사탕은 선반에서 연속된 구간을 이루어야 한다.

예제3

  1. 예제 1

    입력
    6 2
    2 2 1 1 2 2
    
    예상 출력
    4
    
  2. 예제 2

    입력
    7 3
    2 1 2 1 2 2 3
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3 4
    3 4 2
    
    예상 출력
    0