거름 순간이동 장치
시간 제한2초메모리 제한512 MB
각 퇴비를 직접 운반하거나 0에서 y로 이동하는 순간이동기를 이용할 수 있을 때, 총 운반 거리를 최소로 만드는 y를 정한다.
문제
농부 존이 가장 싫어하는 농장 일은 거름을 잔뜩 실어 나르는 일이다. 이 일을 줄이려고 존은 거름 순간이동 장치를 만들었다. 트랙터 뒤에 수레를 달고 두 지점 사이를 오갈 필요 없이, 거름을 한 지점에서 다른 지점으로 즉시 보낸다.
존의 농장은 곧게 뻗은 도로 하나를 따라 있어서, 농장의 모든 위치는 도로 위의 좌표 하나로 나타낼 수 있다. 즉 수직선 위의 점이다. 순간이동 장치는 두 수 와 로 정해진다. 위치 로 가져온 거름은 즉시 위치 로 옮겨진다.
존은 한쪽 끝점을 에 두기로 했다. 남은 끝점 를 어디에 둘지 정해야 한다. 농장에는 거름 더미가 개 있다(). 번째 더미는 위치 에서 위치 로 옮겨야 하고, 각 더미는 따로 옮긴다. 번째 더미를 실은 채 트랙터로 달린 거리를 라고 하자. 트랙터로 곧장 끌고 가면 이다. 순간이동 장치를 쓰면 에서 까지 간 다음 에서 까지 가므로 이다. 존은 두 경로 중 짧은 쪽을 고른다. 모든 더미를 옮기는 동안 같은 를 쓴다.
의 합이 가장 작아지도록 를 정했을 때, 그 합을 구하라.
입력
첫째 줄에 이 주어진다. 이어지는 개의 줄 중 번째 줄에 와 가 주어진다. 두 값 모두 이상 이하의 정수이고, 서로 다르다는 보장은 없다.
출력
의 합의 최솟값을 정수 하나로 출력한다. 이 값은 32비트 정수 범위를 넘을 수 있으므로, 필요한 언어에서는 64비트 정수형을 쓴다.
힌트
첫 번째 예제에서 로 두면 , , 이 된다. 가 이상 이하이면 어떤 값이어도 합은 같다.