Задача Сводная таблица

Файл входного файла: input.txt
Файл выходного файла: output.txt
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

Бухгалтерия хочет получить сводную таблицу начислений сотрудников за один год, с января по декабрь. Бухгалтер Ануар попросил программиста выгрузить все начисления с января по декабрь прошлого года в виде сводной таблицы. Так как данные в базе лежат в нормализованном виде, то программист поленился и выгрузил данные в следующем формате:
ФИО МЕСЯЦ НАЧИСЛЕНИЕ

Кроме того, ленивый программист не учел, что у одного сотрудника за один месяц могут быть несколько начислений, выгрузил данные не в отсортированном виде.

Когда Ануар увидел выгруженные данные, то он сильно расстроился, так как хотел получить данные в удобном виде, в формате сводной таблицы: ФИО ЯНВАРЬ ФЕВРАЛЬ МАРТ …. ДЕКАБРЬ

Помогите Ануару написать программу, которая из выгруженного формата переводит данные в сводную таблицу.

Формат входных данных

Во входном файла сначала записано одно число N – количество выгруженных данных (1<=N<=200). Далее следуют N строк данных Si, Mi, Vi – фамилия сотрудника (без пробелов), месяц, начисление. Si, Mi, Vi разделены одним пробелом. Длина фамилии не превышает 10 символов. Месяцы заданы в следующем формате:

  • Январь – JAN
  • Февраль – FEB
  • Март - MAR
  • Апрель - APR
  • Май - MAY
  • Июнь - JUN
  • Июль - JUL
  • Август - AUG
  • Сентябрь - SEP
  • Октябрь - OCT
  • Ноябрь - NOV
  • Декабрь - DEC

Формат выходных данных

Выведите в выходной файл число T, а затем T строк в следующем формате
(ФАМИЛИЯ) (СУММА ЗА ЯНВАРЬ) (СУММА ЗА ФЕВРАЛЬ) …. (СУММА ЗА ДЕКАБРЬ). Данные выводить отсортированными по фамилии в строгой форме, после вывода фамилии один пробел, затем 12 целых чисел, разделенными одним пробелом. Если у сотрудника в один месяц было несколько начислений, то их нужно суммировать, если не было ни одного, то вывести для соответствующего месяца цифру 0.

Примеры:

ввод вывод

4
Ivanov NOV 10
Petrov FEB 5
Ivanov JAN 2
Petrov FEB 4

2
Ivanov 2 0 0 0 0 0 0 0 0 0 10 0
Petrov 0 9 0 0 0 0 0 0 0 0 0 0

Added: admin
Difficulty: 0.788124604681
Accepted: 5
Submitted: 11
Источник задачи: Open MechMath
Analyze this Discuss

Обсуждение:

Начать обсуждение:

Powered by django, eJudge.