지붕 덮인 통로
시간 제한10초메모리 제한128 MB
직선 위에서 반드시 덮어야 할 점들을 구간으로 나누어 덮되, x에서 y까지 덮는 비용이 c + (x - y)의 제곱일 때 전체 최소 비용을 구한다.
문제
어떤 대학교에서 새 통로를 만들려고 하는데, 통로의 적어도 일부에는 반드시 지붕(덮개)을 씌우려고 합니다. 통로 위에는 반드시 덮여야 하는 특정 지점들이 있습니다. 그 밖의 지점들은 덮이든 덮이지 않든 상관없습니다.
시공업체의 요금 정책은 다음과 같습니다. 통로의 위치 부터 위치 까지를 덮는 데는 의 비용이 들며, 여기서 는 상수입니다. 인 경우도 가능하며, 이때 비용은 그냥 가 됩니다.
통로 위의 지점들과 상수 가 주어질 때, 반드시 덮여야 하는 모든 지점을 덮는 최소 비용을 구하세요.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스의 첫 줄에는 두 정수 과 가 주어집니다 (, ). 여기서 은 반드시 덮여야 하는 지점의 개수이고, 는 시공업체의 상수입니다. 이어지는 개의 줄에는 각각 정수 하나가 주어지며, 이는 반드시 덮여야 하는 통로 위의 한 지점을 나타냅니다. 지점들은 작은 값부터 큰 값 순서로 주어집니다. 모든 지점은 이상 이하입니다. 입력은 두 개의 만 있는 줄(0 0)로 끝나며, 이는 입력의 끝을 뜻합니다.
출력
각 테스트 케이스마다 지정된 모든 지점을 덮는 최소 비용을 정수 하나로 출력합니다. 각 정수는 자기 줄에 공백 없이 출력하고, 답 사이에 빈 줄을 넣지 않습니다. 가능한 모든 입력에 대해 답은 부호 있는 64비트 정수 범위 안에 들어갑니다.