描述
FJ已经将他的K(1 <= K <= 30)挤奶机移动到C(1 <= C <= 200)头奶牛中的牛牧场。不同长度的一组路径在牛和挤奶机中运行。挤奶机位置由ID号1..K;母牛位置由ID号K + 1..K + C命名。
每个挤奶点可以每天“加工”至多M(1≤M≤15)头牛。
编写程序以找到每个奶牛对于某些挤奶机的分配,使得最远行走的奶牛行进的距离最小化(当然,挤奶机不被过度利用)。对于所有输入数据集,至少可以进行一次合法分配。奶牛可以通过几条路径到他们的挤奶机。
输入
*行1:具有三个空格分隔的整数的单行:K,C和M.
*行2 .. ...:K + C个空格分隔整数的这些K + C行中的每一行描述各种实体对之间的距离。输入形成对称矩阵。线2表示从挤奶机1到每个其他实体的距离;线3表示从机器2到每个其他实体的距离,等等。通过路径直接连接的实体的距离是不大于200的正整数。没有通过路径直接连接的实体具有0的距离。从实体到其自身的距离(即,对角线上的所有数)也被给出为0为了保持输入线的合理长度,当K + C> 15时,一行被分成15个数字的连续行和一个可能较短的行以完成一行。每个新行从其自己的行开始。
输出
具有单个整数的单个线,其是最远行走牛的最小可能总距离。