길이 접두사로 시작하는 블록들이 마지막 위치에서 정확히 끝나도록 수열의 원소를 지우면서, 지운 원소의 가능도 최댓값을 최소화한다.
보통7동적 계획법이분 탐색그리디누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MBshake! 회사는 각 사용자의 데이터를 양의 정수로 표현한 뒤 데이터 조각으로 바꾸어 이어 붙여 파일에 저장한다. 하나의 데이터 조각은 맨 앞에 조각의 길이를 적고 그 뒤에 데이터를 이루는 수를 적어 만든다. 조각의 길이를 L이라 하면 조각은 L 뒤에 L−1개의 수가 오는 형태이며, L=1인 조각은 숫자 1 하나만으로 이루어진다.
3명의 사용자 데이터가 {2,5,5}, {1,4,5,1}, {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}이 파일에 저장된다.
손상된 파일에는 원래 파일에 없었어야 할 수들이 추가되었을 수 있다. 각 위치의 수마다 그 수가 원래 파일에도 있었을 가능성을 나타내는 정수가 주어진다. 수를 적당히 지워 올바른 파일로 복구하되, 지운 수들의 가능성의 최댓값이 최소가 되도록 하여라.
첫 줄에 손상된 파일을 이루는 수의 개수 N이 주어진다. 1≤N≤100000을 만족한다.
다음 줄에 손상된 파일을 이루는 정수 N개가 주어진다. 각 수는 1 이상 N 이하이다.
다음 줄에 각 수가 원래 파일에도 있었을 가능성을 나타내는 정수 N개가 주어진다. 각 수는 1 이상 100000 이하이다.
지운 수들의 가능성의 최댓값을 최소화했을 때의 그 최댓값을 첫 줄에 출력한다.
수를 하나도 지우지 않아도 되면 0을 출력한다.
남은 수열이 올바른 파일인지는 앞에서부터 확인한다. 맨 앞의 수를 L이라 하면 그 뒤에 L−1개의 수가 따라와야 하나의 조각이 되며, 다음 조각은 그 바로 뒤에서 시작한다. 마지막 조각까지 정확히 끝나면 올바른 파일이다.
지우는 위치를 고르면 남는 수들의 순서는 그대로 유지되며, 각 조각의 첫 수가 그 조각에 남게 되는 수의 개수와 일치해야 한다.