Introducción a la Programación
Trimestre 2005 Primavera --- Tarea 8

Martes 5 de julio de 2005 a las 16:00 hrs

Calificación de tareas

Un profesor obstinado mantiene una lista de todos sus estudiantes y las calificaciones de las tareas que le entregan. Cada uno de los estudiantes puede entregar una misma tarea tantas veces como quiera y el profesor le asignará una calificación a cada una. La lista del profesor contiene estos datos exactamente en el orden en el que los estudiantes entregan sus tareas. La calificación final de cada tarea entregada por el estudiante es la calificación de la última vez que la entregue, o bien cero si no la entrega. La calificación final del estudiante es simplemente la suma de las calificaciones obtenidas en cada una de las tareas. Ayuda al profesor y escribe un programa que calcule las calificaciones de sus estudiantes.

Especificación

La entrada consiste del archivo de texto tareas.ent que contiene en su primer renglón tres números enteros M, N y T separados por espacios, donde 1 <= M <= 50 es el número de estudiantes en el curso, 1 <= N <= 10 es el número de tareas que el profesor encargó a los estudiantes y 1 <= T <= 1000 es el número de tareas entregadas entre todos los estudiantes. Cada uno de los siguientes T renglones contiene tres números enteros A, B y C separados por espacios, donde 1 <= A <= M es el número del estudiante, 1 <= B <= N es el número de tarea y 0 <= C <= 10 es la calificación obtenida por el estudiante A en esta entrega de la tarea B. La salida estará en el archivo de texto tareas.sal que contiene en su primer renglón los números M y N separados por un espacio, seguido de M renglones, cada uno de ellos conteniendo N+1 números enteros separados por espacios: la calificación de las tareas 1, 2, ..., N seguidas de la calificación final del estudiante. El primero de estos renglones corresponderá al estudiante 1, el segundo al 2, ..., el último al M. El nombre de su programa deberá ser tareasNN.c, donde NN es el número de equipo que les fue asignado. Los archivos tareasNN.o y tareasNN.exe no deben ser entregados. Notas: (a) Su programa no deberá leer ni escribir nada además de los datos mencionados anteriormente. (b) Su programa no deberá usar nada que no hayamos visto en clase. (c) Para compilar su programa en UNIX usen la instrucción gcc tareasNN.c -o tareas y para probarlo usen la instrucción ./tareas y tecleen la entrada deseada seguida de un enter, sin olvidar que antes deben crear un archivo de texto de nombre tareas.ent que contenga algunos datos.

Ejemplo

Archivo tareas.ent   Archivo tareas.sal
2 3 5                2 3
1 2 7                9 5 0 14
1 1 9                0 5 6 11
2 3 6
1 2 5
2 2 5