상자
면접 대비시간 제한1초메모리 제한128 MB
상자 n개가 원형으로 놓여 있고 공의 총 개수는 n 이하이다. 이웃한 상자로 공을 옮겨 모든 상자에 공이 많아야 하나씩 있도록 할 때 최소 이동 횟수를 구한다.
문제
원을 따라 상자 개가 놓여 있고, 시계 방향으로 번부터 번까지 번호가 매겨져 있습니다 (). 원형이므로 번 상자와 번 상자도 서로 이웃합니다. 일부 상자에는 공이 들어 있으며, 공의 총 개수는 을 넘지 않습니다.
모든 상자에 공이 최대 한 개씩만 남도록 공을 옮기려고 합니다. 한 번의 이동으로 어떤 상자에 있는 공 하나를 이웃한 두 상자 중 하나로 옮길 수 있습니다.
각 상자에 공이 최대 한 개씩 남게 만드는 데 필요한 최소 이동 횟수를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 상자의 개수 이 주어집니다. 다음 개의 줄에는 각각 음이 아닌 정수가 하나씩 주어지며, 번째 줄의 정수는 번 상자에 들어 있는 공의 개수입니다. 공의 총 개수는 을 넘지 않습니다.
출력
각 상자에 공이 최대 한 개씩 남도록 만드는 데 필요한 최소 이동 횟수를 음이 아닌 정수 하나로 출력합니다.