111107 Palillos chinos - Programming Challenges

Transcripción

111107 Palillos chinos - Programming Challenges
Skiena y Revilla, Concursos Internacionales de Informática y Programación
Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1
111107
Palillos chinos
En China, la gente utiliza un par de palillos para comer, pero el señor L. es un poco diferente.
A él le gusta utilizar tres palillos: el par habitual más uno adicional. Este último en un palillo más
largo, que le sirve para sostener trozos de comida grandes, clavándolo en ellos. La longitud de los dos
palillos normales deberı́a ser lo más parecida posible, pero la longitud del palillo adicional no tiene
mucha importancia, siempre que sea el más largo. En un conjunto de palillos con longitudes A, B, C
(A ≤ B ≤ C), la función (A − B)2 define la “inutilidad” del conjunto.
El señor L. ha invitado a K personas a su fiesta de cumpleaños, y está deseando presentarles su
forma de utilizar los palillos. Debe preparar K + 8 conjuntos de palillos (para él, para su mujer, para
su hijo, para su hija, para su madre, para su padre, para su suegra, para su suegro y para los K
invitados). Pero los palillos del señor L. tienen longitudes muy diferentes. Teniendo en cuenta dichas
longitudes, debe encontrar la manera de preparar los K + 8 conjuntos, de forma que el valor total de
inutilidad sea mı́nimo.
Entrada
La primera lı́nea de la entrada contiene un único entero T , que determina el número de casos
de prueba (1 ≤ T ≤ 20). Cada caso de prueba comienza con dos enteros, K y N (0 ≤ K ≤ 1.000,
3K + 24 ≤ N ≤ 5.000), que indican el número de invitados y el número de palillos de que dispone. A
continuación, le siguen N enteros positivos Li , en orden no decreciente, que indican la longitud de los
palillos (1 ≤ Li ≤ 32.000).
Salida
Por cada caso de prueba, se debe mostrar una lı́nea que contenga el mı́nimo total de inutilidad de
todos los conjuntos de palillos.
Ejemplo de entrada
1
1 40
1 8 10 16 19 22 27 33 36 40 47 52 56 61 63 71 72 75 81 81 84 88 96 98
103 110 113 118 124 128 129 134 134 139 148 157 157 160 162 164
Ejemplo de salida
23
Nota: Una posible colección de los nueve conjuntos de palillos del ejemplo de entrada es
(8, 10, 16), (19, 22, 27), (61, 63, 75), (71, 72, 88), (81, 81, 84), (96, 98, 103), (128, 129, 148), (134, 134, 139)
y (157, 157, 160).
http://www.programming-challenges.com
c
copyright 2006