전화선
시간 제한1초메모리 제한128 MB
각 전봇대를 원래 높이 이상으로 올리되 올린 양의 제곱과 인접한 전봇대 높이 차에 C를 곱한 값의 합이 최소가 되도록 한다.
문제
재현이는 한 마을에 전화선을 놓으려고 한다.
마을에는 전신주 개가 일렬로 서 있고, 번째 전신주의 처음 높이는 이다. 재현이는 먼저 각 전신주의 높이를 원하는 만큼 높인 뒤(높이를 낮출 수는 없다) 번 전신주의 순서대로 전화선을 잇는다. 높인 뒤의 번 전신주 높이를 ()라고 하자.
- 높이 인상 비용: 한 전신주의 높이를 만큼 높이면 의 비용이 든다. 즉 번 전신주에서는 이 든다.
- 전화선 비용: 인접한 두 전신주 와 을 잇는 데에는 의 비용이 든다.
전신주의 높이를 적절히 높여 전화선을 모두 이었을 때 드는 최소 총비용을 구하여라. 총비용은 모든 높이 인상 비용의 합과 모든 전화선 비용의 합을 더한 값이다.
입력
첫째 줄에 전신주의 개수 과 비용 계수 가 공백으로 구분되어 주어진다. (, )
이어지는 개의 줄에 각 전신주의 처음 높이 가 한 줄에 하나씩 주어진다. ()
출력
전화선을 모두 잇는 데 드는 최소 총비용을 한 줄에 출력한다.
힌트
전신주가 5개, 이고 처음 높이가 차례로 인 경우를 생각하자. 높이를 로 높이면 총비용이 가 되며, 이보다 더 적은 비용은 만들 수 없다.