60000 먼 카드 Silver V

시간 제한: 2초 (추가 시간 없음) 메모리 제한: 2048MB

문제

자연수가 적힌 카드 2N2N장이 있다. 이 카드들은 일렬로 왼쪽에서 오른쪽으로 나열되어 있다.

각 카드에는 11 이상 NN 이하의 자연수가 정확히 하나씩 적혀 있다. 왼쪽에서 ii (1i2N1 ≤ i ≤ 2N)번째에 놓인 카드에 적힌 자연수를 XiX_i 라고 하자.

1kN1 ≤ k ≤ N인 각 kk에 대해, kk가 적힌 카드는 정확히 두 장이다. 즉, 11부터 NN까지의 각 자연수는 정확히 두 장의 카드에 적혀 있다.

정올이는 자연수 kk가 적힌 두 카드 사이에 놓인 카드의 개수를 ”kk 사이 카드 수”라고 부르기로 했다.

예를 들어, 아래 그림과 같이 카드가 놓여있다고 생각해 보자. 아래 그림에서 N=4N = 4이고, X1=1X_1 = 1, X2=2X_2 = 2, X3=2X_3 = 2, X4=4X_4 = 4, X5=3X_5 = 3, X6=1X_6 = 1, X7=3X_7 = 3, X8=4X_8 = 4이다.

  • 11이 적힌 두 카드 사이에는 차례로 22, 22, 44, 33이 적힌 카드가 있으므로, ”11 사이 카드 수”는 44이다.
  • 22가 적힌 두 카드 사이에는 아무 카드도 없으므로, ”22 사이 카드 수”는 00이다.
  • 33이 적힌 두 카드 사이에는 11이 적힌 카드만 있으므로, ”33 사이 카드 수”는 11이다.
  • 44가 적힌 두 카드 사이에는 차례로 33, 11, 33이 적힌 카드가 있으므로, ”44 사이 카드 수”는 33이다.

위의 사례에서 ”kk 사이 카드 수”들 중 가장 큰 것은 ”11 사이 카드 수”로, 그 값은 44이다.

정올이는 11부터 NN까지의 모든 자연수 kk에 대한 ”kk 사이 카드 수” 중 가장 큰 값을 구하고 싶다.

카드가 나열된 순서대로 카드에 적힌 자연수가 주어질 때, 모든 ”kk 사이 카드 수” 중 가장 큰 값을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 정수 NN이 주어진다.

두 번째 줄에 2N2N개의 정수 X1,X2,,X2NX_1 , X_2 , \cdots, X_{2N}이 공백을 사이에 두고 주어진다.

출력

첫 번째 줄에 답을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1N20001 ≤ N ≤ 2\, 000
  • 1i2N1 ≤ i ≤ 2N인 각 ii에 대해, 1XiN1 ≤ X_i ≤ N
  • 1kN1 ≤ k ≤ N인 각 kk에 대해, kk가 적힌 카드는 정확히 두 장이다. 즉, X1,X2,,X2NX_1 , X_2 , \cdots, X_{2N} 중에서 kk가 정확히 두 번 나타난다.

서브태스크

번호배점제한
110N2N ≤ 2
215답은 00 또는 11이다.
315답은 2N32N − 3 또는 2N22N − 2이다.
420N500N ≤ 500
540추가 제약 조건 없음.

예제 입출력

예제 입력 1
4
1 2 2 4 3 1 3 4
예제 출력 1
4
예제 입력 2
4
1 2 3 4 4 3 2 1
예제 출력 2
6

출처

올림피아드 한국정보올림피아드 KOI 2025 1차 초등부 1번
solution.cpp
에디터 불러오는 중...