| XXX Spain Olympiad in Informatics, Day 2 |
|---|
| Закончено |
Es la final de la OIE y, un año más, Jacobo ha pagado más de lo que le tocaba y todo el mundo debe hacerle transferencias para saldar las cuentas. Pero claro, esto es lioso, ya que Blanca también ha adelantado el dinero de las comidas, Manu ha comprado los refrescos, etc.
Darío sugiere usar Splitwise, una aplicación en la que los n voluntarios apuntan cuánto han pagado cada vez que hacen una compra. Al final del viaje, esta aplicación suma cuánto ha pagado cada uno y, usando un algoritmo inteligente, organiza las transferencias para que cada voluntario acabe pagando lo mismo. Además, con este algoritmo, saldar las cuentas requiere como máximo n - 1 transferencias. ¿Sabrías diseñar un algoritmo semejante?
Recibirás una línea en la entrada con un entero T, el número de casos que has de procesar. Cada caso consistirá en:
Por cada caso de prueba, imprime una línea con un entero p: el número de transferencias con el que se podrían saldar todas las cuentas. p debe ser menor o igual que n - 1. Después, imprime p líneas (una por transferencia, en cualquier orden), donde describas (1) quién hace la transferencia, (2) quién la recibe y (3) de qué valor es la transferencia (un valor estrictamente positivo). Observa que no es necesario minimizar el número de transferencias, pero este debe ser como máximo n - 1. Cualquier solución que cumpla estas restricciones será válida.
34 1Jacobo Marco Pedro JoanJacobo 4002 3Jacobo MarcoJacobo 1Jacobo 2Marco 33 3dario manu albertodario 4manu 5alberto 6
3 Joan Jacobo 100 Pedro Jacobo 100 Marco Jacobo 100 0 1 dario alberto 1
| Название |
|---|


