约翰有 头奶牛, 个一字排开的牛棚。相邻牛棚间的距离恰好为 。
奶牛们已经回棚休息,第 只奶牛现在待在牛棚 。如果两只奶牛离得太近,会让奶牛们变得很暴躁。
所以约翰想给一些奶牛换一个棚,让她们之间的距离变得尽量大,并且尽管接近。
令 (原题目使用了Trunc函数的表达式),约翰希望最终的奶牛的状态是:两只相邻奶牛间的距离与 之差不超过 ,而且让尽量多的间距等于 。
因此,对于 只奶牛 个棚的情况, 或 这样的安置情况是允许的,而 或 这样的情况是不允许的。
帮助约翰移动奶牛,让所有奶牛的移动距离之和最小,同时让最终的安置情况符合约翰心意。