다리 건설

첫 기둥과 마지막 기둥을 반드시 포함하는 부분집합을 골라 인접한 두 기둥 사이 구간 비용 (h_i-h_j)^2과 빠진 기둥마다 w_i를 지불할 때 최소 총비용을 구한다.

어려움8동적 계획법그리디기하아직 제출이 없습니다시간 제한3초메모리 제한128 MB

문제

넓은 강에 기둥 nn개가 물 위로 솟아 있다. 기둥의 높이는 서로 다를 수 있고, 기둥은 한쪽 강기슭에서 반대쪽 강기슭까지 일직선으로 늘어서 있다. 이 기둥을 지지대로 삼아 다리를 놓으려고 한다. 기둥 중 일부를 고른 다음, 고른 기둥 가운데 이웃한 두 기둥의 꼭대기를 이어 다리 구간을 만든다. 고른 기둥에는 첫 번째 기둥과 마지막 기둥이 반드시 들어간다.

이웃한 두 기둥 iijj를 잇는 구간을 놓는 비용은 (hihj)2(h_i - h_j)^2이다. hih_i는 기둥 ii의 높이이고, 이 비용은 기울기가 심한 구간을 피하려는 데서 나온다. 다리에 쓰이지 않은 기둥은 강의 통행을 막으므로 모두 뽑아내야 한다. ii번 기둥을 뽑는 비용은 wiw_i이다. 이 비용은 음수일 수도 있다. 특정 기둥이 없어지기를 바라는 쪽에서 오히려 돈을 주기도 하기 때문이다. 모든 높이 hih_i와 비용 wiw_i는 정수이다.

첫 번째 기둥과 마지막 기둥을 잇는 다리를 놓는 최소 비용을 구하라.

입력

첫째 줄에 기둥의 개수 nn이 주어진다. 둘째 줄에 기둥의 높이 hih_i가 순서대로 공백으로 구분되어 주어진다. 셋째 줄에 같은 순서로 기둥을 뽑는 비용 wiw_i가 주어진다.

출력

다리를 놓는 최소 비용을 출력한다. 이 값은 음수일 수도 있다.

제한

  • 2n1052 \le n \le 10^5
  • 0hi1060 \le h_i \le 10^6
  • wi106|w_i| \le 10^6