가로로 있는 막대에 개의 리본이 매달려 있다. 번째 리본은 막대의 왼쪽 끝에서 거리 인 곳에 매달려 있고 길이는 이며, 가중치는 이다.
각 리본에 대해서 할 수 있는 선택은 두 가지이다.
모든 선택을 다 마치고 묶을 리본들을 다 묶었을 때, 어떤 리본 쌍도 공유하는 점이 있는 것은 허용되지 않는다.
아래 그림의 경우는 허용이 되는 경우이다.
아래 그림의 경우는 개의 리본들에서 왼쪽에서 첫 번째와 네 번째 리본을 묶고, 두 번째와 세 번째 리본을 묶은 것인데, 묶인 리본 쌍이 교차하므로 허용되지 않는 모양이다.
좀 더 구체적인 예로, 이고 각 리본의 막대 왼쪽 끝에서 거리가 , , 이고, 길이가 , , 일 때, 첫 번째와 세 번째 리본을 묶고 두 번째 리본을 그대로 두면 아래 그림과 같이 두 번째 리본의 끝이 묶인 리본 쌍에 닿게 되어 허용되지 않는 모양이다. 그림에서 두 번째 리본은 붉은색으로 표현하였다.
또, 이고 각 리본의 막대 왼쪽 끝에서 거리가 , , , 이고, 길이가 , , , 일 때, 첫 번째와 네 번째 리본을 묶고 두 번째와 세 번째 리본을 묶으면 두 리본 쌍의 가로 부분이 겹치게 되어 역시 허용되지 않는 모양이다.
모든 선택을 다 마치고 묶을 리본들을 다 묶었을 때 번째와 번째 리본을 묶은 쌍에 대해서 점수는 이다. 번째 리본을 묶지 않은 경우 점수는 이다.
적절한 선택을 하여 점수 합의 최댓값을 구하는 프로그램을 작성하시오.
첫 줄에 리본의 개수 이 주어진다. ()
두 번째 줄에 각 리본의 막대 왼쪽 끝에서의 거리를 나타내는 개의 정수 이 공백으로 구분되어 주어진다. ()
세 번째 줄에 각 리본의 길이를 나타내는 개의 정수 이 공백으로 구분되어 주어진다. ()
네 번째 줄에 각 리본의 가중치를 나타내는 개의 정수 이 공백으로 구분되어 주어진다. ()
첫 줄에 점수 합의 최댓값을 출력한다.
3 1 2 3 2 1 2 5 2 4
14
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 26점
종류 2: 23점
종류 3: 22점
종류 4: 29점
추가적인 제한 조건이 없음.