1155: 邮局
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:22
解决:6
题目描述
一些村庄建在一条笔直的高速公路边上。我们用一条坐标轴来描述这条高速公路,每一个村庄的坐标都是整数,没有两个村庄坐标相同。两个村庄间的距离,定义为它们的坐标值差的绝对值。我们需要在一些村庄建立邮局.当然,并不是每一个村庄都必须建立邮局,邮局必须被建在村庄里,因此它的坐标和它所在村庄坐标相同。每个村庄便用离它最近的那个邮局,建立这些邮局的原则是:所有村庄到各自所使用的邮局的距离总和最小。
你的任务是编写一个程序,在给写了每个村庄的坐标和将要建立的邮局数之后,按照上述原则,合理地选择这些邮局的位置。
你的任务是编写一个程序,在给写了每个村庄的坐标和将要建立的邮局数之后,按照上述原则,合理地选择这些邮局的位置。
输入
输入的每一行包含两个整数;第一个整数是村庄的数目v(1<=v<=300);第二个整数是将建立的邮局数p(1<=p<=30且p<=v)。
第二行递增顺序列出了v个整数。这v 个整数分别表示了各村庄的位置坐标。对于每一个位置坐标x,1<=x<=10000。
第二行递增顺序列出了v个整数。这v 个整数分别表示了各村庄的位置坐标。对于每一个位置坐标x,1<=x<=10000。
输出
第一行是一个整数S,所表示你所求出的所有村庄到距离它最近的邮局的距离总和。相应地,文件的第二行按照递增顺序列出了P个整数,分别表示你所求出的每个邮局的建立位置。虽然对于同一个S,可能会有多种邮局建立的方案以,但只需输出其中的一种。
样例输入 复制
10 5
1 2 3 6 7 9 11 12 44 50
样例输出 复制
9
2 7 22 44 50