프리 웨이트

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

요약
각 질량이 두 번씩 나오는 두 줄의 아령을 짝지어 붙일 때, 들어 올려야 하는 가장 무거운 아령의 최소 질량을 구한다.
난이도

보통10점 중 7점

유형
배열, 투 포인터, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

체육관에 랙이 두 개 있고, 랙마다 덤벨이 한 줄로 놓여 있다. 덤벨은 nn쌍이고, 한 쌍을 이루는 두 덤벨의 무게는 서로 같다. 서로 다른 쌍의 무게는 모두 다르다. 처음에 각 줄에는 덤벨이 정확히 nn개씩 놓여 있고 순서는 정해져 있지 않다. 한 쌍이 같은 줄에 나란히 있을 수도 있고 두 줄에 나뉘어 있을 수도 있다. 각 줄의 양쪽 끝에는 빈 자리가 얼마든지 있다.

덤벨은 두 가지 방법으로 옮긴다.

  • 같은 줄에서 바로 옆의 빈 자리로 굴린다. 힘은 거의 들지 않는다.
  • 들어 올려 어느 줄이든 빈 자리에 내려놓는다. 이때 덤벨의 무게에 비례하는 힘이 필요하다.

굴리기로는 다른 덤벨을 지나갈 수 없으므로, 들어 올려 빼내지 않는 한 한 줄 안의 순서는 그대로 유지된다. 양쪽 끝의 빈 자리가 무한하니 덤벨을 굴려 줄 중간 어디에나 빈 자리를 만들 수 있고, 들어 올린 덤벨은 어느 덤벨 옆에나 내려놓을 수 있다.

같은 쌍의 두 덤벨이 서로 옆에 오도록 정리하려고 한다. 정리를 마친 뒤 두 줄의 덤벨 개수는 서로 달라도 된다. 들어 올리는 덤벨의 무게 중 최댓값을 가장 작게 만들 때, 그 값을 구하라.

입력

첫째 줄에 쌍의 개수 nn이 주어진다 (1≤n≤1061 \le n \le 10^6).

다음 두 줄에는 줄마다 정수 nn개 w1,…,wnw_1, \dots, w_n이 주어진다 (1≤wi≤1091 \le w_i \le 10^9). wiw_i는 그 줄에서 왼쪽으로부터 ii번째 덤벨의 무게다.

입력에 나오는 각 무게는 정확히 두 번씩 등장한다.

출력

들어 올리는 덤벨 중 가장 무거운 것의 무게를 가장 작게 했을 때, 그 무게를 한 줄에 출력한다. 아무 덤벨도 들어 올리지 않고 모든 쌍을 붙일 수 있으면 0을 출력한다.

예제2

  1. 예제 1

    입력
    5
    2 1 8 2 8
    9 9 4 1 4
    
    예상 출력
    2
    
  2. 예제 2

    입력
    8
    7 7 15 15 2 2 4 4
    5 5 3 3 9 9 1 1
    
    예상 출력
    0