LIS 하나 빼기
시간 제한3초메모리 제한1024 MB
각 원소를 하나씩 제거했을 때 남은 배열에서 가장 긴 증가 부분 수열의 가중치 합 최댓값을 모든 원소에 대해 구한다.
문제
길이 인 정수 배열 이 주어진다. 배열의 각 원소 에는 가중치 가 대응된다. 이 때 모든 원소 는 서로 다른 정수이다.
이때, 배열 의 부분 증가 수열 중 길이가 최대인 수열을 LIS라 하자. 부분 증가 수열이란, 배열에서 개 이상의 원소를 제거하여 얻을 수 있는 증가 수열을 의미한다.
또한, 어떤 부분 수열을 구성하는 원소들의 가중치 합을 그 부분 수열의 가치라 정의한다.
각 에 대해, 에서 원소 를 제거한 배열 에서 얻을 수 있는 LIS의 최대 가치를 구하여라.
입력
첫째 줄에 이 주어진다. ()
둘째 줄에 개의 양의 정수 이 공백으로 구분되어 주어진다. 일 때 를 만족한다. ()
셋째 줄에 개의 양의 정수 이 공백으로 구분되어 주어진다. ()
출력
첫째 줄에 개의 정수를 공백으로 구분하여 출력한다. 번째 수는 에서 원소 를 제거했을 때 얻을 수 있는 LIS의 최대 가치를 뜻한다.