손상된 파일 복구

길이 접두사로 시작하는 블록들이 마지막 위치에서 정확히 끝나도록 수열의 원소를 지우면서, 지운 원소의 가능도 최댓값을 최소화한다.

보통7동적 계획법이분 탐색그리디누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

shake! 회사는 각 사용자의 데이터를 양의 정수로 표현한 뒤 데이터 조각으로 바꾸어 이어 붙여 파일에 저장한다. 하나의 데이터 조각은 맨 앞에 조각의 길이를 적고 그 뒤에 데이터를 이루는 수를 적어 만든다. 조각의 길이를 LL이라 하면 조각은 LL 뒤에 L1L-1개의 수가 오는 형태이며, L=1L=1인 조각은 숫자 11 하나만으로 이루어진다.

3명의 사용자 데이터가 {2,5,5}\{2, 5, 5\}, {1,4,5,1}\{1, 4, 5, 1\}, {2,3,1}\{2, 3, 1\}이면 각 조각은 {4,2,5,5}\{4, 2, 5, 5\}, {5,1,4,5,1}\{5, 1, 4, 5, 1\}, {4,2,3,1}\{4, 2, 3, 1\}이 되고, 이어 붙인 {4,2,5,5,5,1,4,5,1,4,2,3,1}\{4, 2, 5, 5, 5, 1, 4, 5, 1, 4, 2, 3, 1\}이 파일에 저장된다.

손상된 파일에는 원래 파일에 없었어야 할 수들이 추가되었을 수 있다. 각 위치의 수마다 그 수가 원래 파일에도 있었을 가능성을 나타내는 정수가 주어진다. 수를 적당히 지워 올바른 파일로 복구하되, 지운 수들의 가능성의 최댓값이 최소가 되도록 하여라.

입력

첫 줄에 손상된 파일을 이루는 수의 개수 NN이 주어진다. 1N1000001 \le N \le 100000을 만족한다.

다음 줄에 손상된 파일을 이루는 정수 NN개가 주어진다. 각 수는 11 이상 NN 이하이다.

다음 줄에 각 수가 원래 파일에도 있었을 가능성을 나타내는 정수 NN개가 주어진다. 각 수는 11 이상 100000100000 이하이다.

출력

지운 수들의 가능성의 최댓값을 최소화했을 때의 그 최댓값을 첫 줄에 출력한다.

수를 하나도 지우지 않아도 되면 00을 출력한다.

힌트

남은 수열이 올바른 파일인지는 앞에서부터 확인한다. 맨 앞의 수를 LL이라 하면 그 뒤에 L1L-1개의 수가 따라와야 하나의 조각이 되며, 다음 조각은 그 바로 뒤에서 시작한다. 마지막 조각까지 정확히 끝나면 올바른 파일이다.

지우는 위치를 고르면 남는 수들의 순서는 그대로 유지되며, 각 조각의 첫 수가 그 조각에 남게 되는 수의 개수와 일치해야 한다.