만드는 중입니다

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

M. S. I. S.

시간 제한0.5초메모리 제한2048 MB

요약
2행 n열 행렬의 열 순서를 바꿔, 두 행 각각의 증가하는 부분 수열 합의 최댓값을 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 그래프, 정렬
정답자
아직 제출이 없습니다

문제

양의 정수로 이루어진 2×n2 \times n 행렬 MM이 주어진다. MM의 각 행에는 같은 수가 두 번 나오지 않는다. ii번째 행 rir_i (i=1,2i = 1, 2)에서 증가하는 부분 수열의 합이 최대인 값을 sis_i라 하자. 예를 들어 아래 행렬에서 s1s_1은 1+2+3+4+5+61 + 2 + 3 + 4 + 5 + 6이고, s2s_2는 2+3+52 + 3 + 5이다.

[123456623541]\begin{bmatrix} \color{red}{1} & \color{red}{2} & \color{red}{3} & \color{red}{4} & \color{red}{5} & \color{red}{6}\\ 6 & \color{red}{2} & \color{red}{3} & \color{red}{5} & 4 & 1 \end{bmatrix}

s1+s2s_1 + s_2를 MSIS(maximum sum of increasing subsequences)라고 부른다. MM의 열을 재배열하면 MSIS가 달라질 수 있다. 아래 행렬은 열 [c1,c2,c3,c4,c5,c6][c_1, c_2, c_3, c_4, c_5, c_6]을 [c2,c3,c4,c5,c6,c1][c_2, c_3, c_4, c_5, c_6, c_1]로 재배열한 것이고, 이때 MSIS는 36이 된다.

[234561235416]\begin{bmatrix} \color{red}{2} & \color{red}{3} & \color{red}{4} & \color{red}{5} & \color{red}{6} & 1\\ \color{red}{2} & \color{red}{3} & \color{red}{5} & 4 & 1 & \color{red}{6} \end{bmatrix}

주어진 MM에 대해, 열을 모든 순열로 재배열했을 때 얻을 수 있는 MSIS의 최댓값을 구하라.

입력

첫 줄에 MM의 열 개수를 나타내는 정수 nn (1≤n≤100001 \le n \le 10000)이 주어진다. 다음 두 줄에는 각각 MM의 1행과 2행을 이루는 정수 nn개가 주어진다. 모든 정수는 1 이상 50000 이하이며, 각 행에는 같은 수가 두 번 나오지 않는다.

출력

MM의 열을 모든 순열로 재배열했을 때 얻을 수 있는 MSIS의 최댓값을 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    5
    50 40 3 2 1
    1 2 3 100 200
    
    예상 출력
    396