사라진 순열
면접 대비시간 제한15초메모리 제한256 MB
빈칸에 빠진 수를 채워 만들 수 있는 가장 긴 증가 부분 수열의 길이를 구합니다.
문제
꼬마 토마토는 부터 까지의 수를 한 번씩 늘어놓은 순열 를 칠판에 적어 둔다. 날마다 의 수 몇 개를 서로 바꿔 새 순열 를 만들고, 의 가장 긴 증가 부분 수열(LIS)을 찾는다. 언젠가 LIS를 더 빠르게 계산하는 방법을 찾아내리라 믿기 때문이다.
지진이 난 어느 날, 칠판에 적힌 수 가운데 몇 개가 떨어져 나갔다. 떨어진 수를 빈자리에 모두 되돌려 놓되 어느 자리에 놓을지는 토마토가 고른다. 이렇게 복원한 순열의 LIS 길이는 최대 얼마인가?
증가 부분 수열은 왼쪽에서 오른쪽으로 읽을 때 값이 계속 커지는 부분 수열이다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다 ().
각 테스트 케이스의 첫째 줄에는 순열의 길이 이 주어진다 (). 둘째 줄에는 일부가 빠진 순열 이 주어진다. 은 원래 번째 자리에 있던 수가 떨어졌다는 뜻이다.
입력은 항상 올바르다. 이 아닌 값은 서로 다르고 모두 이상 이하이며, 떨어진 수는 순열에 나타나지 않은 수와 정확히 일치한다. 입력 전체의 크기는 10MB 미만이다.
출력
각 테스트 케이스마다 복원한 순열의 LIS 길이가 최대 얼마인지 한 줄에 출력한다.