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