题目
作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。
牛棚内部有 n
个房间,围成一个环形,按顺时针编号为 1∼n
。
每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。
约翰想让第 i
个房间内恰好有 ri
头牛。
为了让奶牛们有序的进入牛棚,他计划打开一个外门,让牛从该门进入。
然后,每头牛顺时针穿过房间,直到到达合适的房间为止。
约翰希望通过合理选择打开的门,使得所有奶牛的行走距离之和尽可能小(这里只考虑每头牛进入牛棚以后的行走距离)。
请确定他的奶牛需要行走的最小总距离。
代码
import java.util.*;
public class Main {
static int N = 100010;
static int n, ans = Integer.MAX_VALUE;
static int[] a = new int[1010];
public static void main(String[] args) {
Scanner inScanner = new Scanner(System.in);
n = inScanner.nextInt();
for(int i = 0; i < n; i ++)
a[i] = inScanner.nextInt();
inScanner.close();
for(int i = 0; i < n; i ++)
{
int sum = 0;
for(int j = 1; j < n; j ++)
sum += j * a[(i + j) % n];
ans = Math.min(sum, ans);
}
System.out.println(ans);
}
}