아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Lizak

면접 대비

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

요약
연속한 부분 배열 가운데 어떤 값이 세 번 이상 나타나는 가장 짧은 것의 길이를 구하고, 그런 구간이 없으면 NIE를 출력한다.
난이도

보통10점 중 5점

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

문제

Bajtek udał się do cukierni. Jego uwagę przykuł długi lizak składający się z N części równej długości. Każda część lizaka ma pewien określony smak.

Bajtek chciałby wybrać pewien spójny fragment tego lizaka. Aby to zrobić, może on odłamać pewną liczbę części (być może zero) z lewej i prawej strony tego lizaka. Poniższy rysunek pokazuje kilka możliwości wybrania fragmentów z lizaka przedstawionego powyżej. Przykładowe fragmenty oznaczone są czarną ramką.

Bajtek uważa fragment lizaka za smaczny, jeżeli zawiera co najmniej trzy części o tym samym smaku. Zwróć uwagę, że Bajtka nie interesuje jaki dokładnie smak będzie występował trzy razy, ani ile będzie różnych smaków w tym fragmencie. Zauważ, że wszystkie fragmenty z rysunku powyżej są smaczne.

Bajtek nie zamierza się przejadać. Chciałby więc wybrać najkrótszy smaczny fragment lizaka, czyli taki fragment który składa się z jak najmniejszej liczby części. Pomóż mu!

Napisz program, który na podstawie opisu lizaka wyznaczy długość jego najkrótszego smacznego fragmentu lub stwierdzi że nie jest możliwe wybranie żadnego smacznego fragmentu.

입력

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N (1 ≤ N ≤ 500 000) określająca liczbę części dostępnego lizaka w sklepie. W drugim (ostatnim) wierszu wejścia znajduje się opis części tego lizaka. Lizak ten reprezentowany jest jako ciąg N liczb naturalnych Ai (1 ≤ Ai ≤ 109). Są to oznaczenia smaków fragmentów lizaka w kolejności ich występowania w lizaku od lewej do prawej. Różne smaki reprezentowane są różnymi liczbami.

출력

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – minimalna liczba części, które ma smaczny fragment lizaka zgodnie z warunkami powyżej. Jeśli z lizaka opisanego na wejściu nie można wybrać smacznego fragmentu to zamiast tego należy wypisać tylko jedno słowo NIE.

예제4

  1. 예제 1

    입력
    10
    6 8 4 8 6 8 8 2 6 6
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5
    1 2 3 4 5
    
    예상 출력
    NIE
    
  3. 예제 3

    입력
    5
    1 1 1 1 1
    
    예상 출력
    3
    
  4. 예제 4

    입력
    7
    9 99 999 9 999 99 9
    
    예상 출력
    7