Chequen este problema, no se hacerlo

Berna
20 de Enero del 2005
Tienes que determinar, de un grupo de amigos dadores de regalos, cuánto más dio cada persona de lo que recibió (y viceversa, problema pensado para aquellos que ven el dar regalos con cinismo). En este problema, cada persona apartó dinero para los regalos que tiene que dar y dividió dicho dinero en cantidades iguales para todas aquellos alos que debe dar regalo. Sin embargo, en cualquier grupo de amigos, algunas personas son más espléndidas que otras y algunas tienen más dinero que otras.

Dado un grupo de amigos, el dinero que cada persona del grupo gastó en regalos y una lista de amigos a quienes cada persona debe dar regalos, tienes que escribir un programa que determine cuánto más (o menos) cada persona dió comparado con los que ellos recibieron.

Entrada
La entrada es un grupo de dadores de regalos el cual consiste en varias líneas:

* El número de personas del grupo.
* Una lista de los nombres de cada persona del grupo.
* Una línea por cada persona en el grupo, que consiste en el nombre de la persona, el monto de dinero que gastó en regalos, el número de personas a quienes les fueron dados los regalos y los nombres de esas personas a quienes les fueron dados los regalos.

Todos los nombres deben estar en letras minúsculas, no hay más de 10 personas en el grupo y los nombres no son mayores a 12 caracteres de longitud. El dinero es un entero no negativo y menor que 2000.

Ejemplo 1 - Archivo: problema2.in
5

dave laura owen vick amr
dave 200 3 laura owen vick

owen 500 1 dave

amr 150 2 vick owen

laura 0 2 amr vick

vick 0 0

Salida
El nombre de cada persona en el grupo debe ser impreso en una línea seguido de la cantidad total ganada (o perdida) por la persona. Los nombres en el grupos deberán ser impresos en el mismo orden en el cual ellos aparecen en la lista.

Ejemplo 1 - Archivo: problema2.out

dave 302

laura 66

owen -359

vick 141

amr -150

Todos los regalos son enteros. Cada persona da la misma cantidad entera de dinero a cada amigo y da lo más posible. Cualquier dinero que no es regalado, es retenido por la persona y debe ser considerado al calcular el total ganado o perdido de dicha persona.

¿Que lenguaje de programacion me recomiendan? JAVA? Que estructura de datos es mas adecuada?

Lucas
20 de Enero del 2005
Dada la simpleza del programa, casi cualquier lenguaje te vale, C, C++, C#, JAVA, Pascal, Fortran, COBOL, ... ... ...
Si optas por JAVA (mi eleccion personal) tendras que utilizar estructuras tipo Array o Vector para ir almacenando la informacion recibida, donde cada linea puede ser una clase que represente la informacion que contiene