No se como resolver este problema

Bena
19 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 algu
nas 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 deter
mine 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 estructura de datos me recomiendan? ¿Que lenguaje de Progamación es el mas factible? ¿Java?