Задача A. Футбольный чемпионат

Автор:И. Туфанов
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

В футбольном чемпионате приняли участие N команд. Каждая команда провела N − 1 игру на своем поле и столько же выездных игр (т.е. всего произошло N(N − 1) встреч). Каждая игра оканчивается либо победой одной из команд, либо ничьей. В случае ничьей обе команды получают по одному очку, в противном случае команда-победитель получает три очка, проигравшая команда — ноль.

Турнирная таблица представляет собой таблицу чисел N × N. По диагонали таблицы стоят нули. При i ≠ j, j-ый элемент на i-ой строке равен количеству очков, которое i-ая команда заработала в матче с j-ой командой на своем поле.

Вам дано итоговое количество очков каждой команды. Необходимо составить турнирную таблицу, соответствующую данному распределению, либо установить, что это невозможно. Если удается составить несколько турнирных таблиц, выведите любую из них.

Формат входного файла

В первой строке входного файла находится число N. Во второй строке записаны N чисел ai, представляющих собой очки каждой команды.

Формат выходного файла

Выходной файл должен содержать N строк по N чисел в каждой — описание турнирной таблицы. Если искомой таблицы не существует, то выведите таблицу, содержащую только нули.

Ограничения

2 ≤ N ≤ 5; 0 ≤ ai ≤ 6(N − 1)

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
2
1 4
0 1
3 0
2
2
5 5
0 0
0 0

Задача B. Сломанный арифмометр с нетривиальным принципом работы

Автор:И. Олейников
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

Один из известных коллекционеров недавно приобрел на аукционе старый арифмометр.

Арифмометр состоит из двух циферблатов, набора кнопок, которые можно нажать, и ручек, которые можно крутить. На первом циферблате показывается число от 0000 до 9999. К сожалению, арифмометр длительное время не ремонтировали, поэтому работают только кнопка, увеличивающая значение числа на 1, и ручка, за один поворот которой можно увеличить на 1 группу одинаковых разрядов числа из одного или более штук. Если в числе несколько групп одинаковых разрядов, то имеется возможность выбрать любую. Например, возможна следующая последовательность действий 1234 ↦ 1244 ↦ 2244 ↦ 3344 ↦ 4444 ↦ 4445 ↦ 5555. На втором циферблате отображается набранная сумма с учетом знака. При этом число на втором циферблате меняется согласно следующим правилам:

  1. Одно нажатие на кнопку или один поворот ручки считается одним действием.
  2. Если число произведенных действий нечетно, то к числу на втором циферблате будет прибавлен результат действия на первом.
  3. Если число произведенных действий четно, то от числа на втором циферблате отнимается результат действия на первом.
В начальном состоянии на первом циферблате установлено число A, а на втором — 0.

Например: если A = 1234, то после нажатия кнопки на обоих циферблатах будет установлено число 1235. После еще одного нажатия кнопки на первом циферблате будет 1236, а на втором — 1.

Коллекционер хочет узнать, какое наименьшее число он сможет установить на втором циферблате, произведя ровно K действий.

Формат входного файла

Во входном файле содержаться два числа A и K.

Формат выходного файла

Выходной файл должен содержать единственное число — минимальное число на втором циферблате после K действий.

Ограничения

0000 ≤ A ≤ 9999, 0 ≤ K ≤ 10

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
1130 4
-2220
2
0023 1
24
3
1234 0
0

0.026s 0.004s 9