[E] Barra de Chocolate
tiempo límite por test | 2 segundos |
memoria límite por test | 256 MB |
entrada | entrada estándar |
salida | salida estándar |
Tienes una barra rectangular de chocolate que consiste de cuadrados. Quieres comer exactamente cuadrados, así que puede que necesites partir la barra de chocolate.
En un movimiento puedes partir un trozo rectangular de chocolate en otros dos trozos rectangulares siguiendo únicamente las líneas verticales y horizontales entre los cuadrados. Adicionalmente, cada partición tiene un costo equivalente al cuadrado de su longitud.
Por ejemplo, si tienes una barra de chocolate de unidades, podrías romperla horizontalmente y obtener dos trozos de (con un costo de ), o romperla verticalmente de dos formas, y obtener dos trozos de y unidades respectivamente (siendo aquí el costo igual a ).
Para varios valores de , y encuentra el menor costo posible en particiones. Puedes comer exactamente cuadrados sólo cuando haya un conjunto de trozos de chocolate con un tamaño total igual a cuadrados. Los cuadrado restantes no necesariamente tienen que formar un único trozo rectangular.
Entrada
La primera línea de la entrada contiene un único entero () - la cantidad de valores , , y a procesar.
Cada una de las siguientes líneas contiene tres enteros , y (, ) - las dimensiones de la barra de chocolate y el número de cuadrados que quieres comer respectivamente.
Salida
Para cada uno de los casos imprime el menor costo total necesario para partir la barra de chocolate con el fin de comer exactamente cuadrados.
Ejemplos
4
2 2 1
2 2 3
2 2 2
2 2 4
output:
5
5
4
0
Nota
En el primer caso del ejemplo se necesitan dos particiones:
- dividir la barra de en dos trozos de (con un costo de )
- dividir una de los trozos de resultantes en dos trozos de (con un costo de )
En el segundo caso, como son 3 los cuadrados que uno quiere comer, se puede usar exactamente la misma estrategia del caso anterior.