C. HARD

Имя входного файла: hard.in
Имя выходного файла: hard.out
Ограничение по времени: 3 s
Ограничение по памяти: 256 megabytes

Стажировка в компании KTP SOLUTIONS начинается с простой задачки.

Числовой матрицей N *M называют таблицу из чисел, состоящую из N строк и M столбцов. Если саму матрицу обозначить буквой A, то элемент матрицы, находящийся в i-той строке на j-том месте, обозначают Aij.

Кандидату даётся матрица A размера N *M и его просят найти две матрицы B и C размера N *M такие, что, если сложить их соответствующие элементы, то получится исходная матрица (то есть Aij = Bij + Cij). Всё было бы легко, но есть одно ограничение – в искомых матрицах B и C все числа должны быть различны (хотя числа из разных матриц могут и совпадать).

Сможете ли вы решить такую задачу?

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

В первой строке входного файла находятся два целых числа N и M (1 ≤ N, M ≤ 1'000) – размеры матрицы A. Далее в N строках находится по M целых чисел – элементы матрицы. Числа не превосходят 1'000'000 по модулю.

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

В выходной файл выведите 2 ⋅N строк по M чисел в каждой – искомые матрицы B и C. Элементы каждой матрицы должны быть различны и не превышать 1'000'000'000 по модулю. Сначала выведите первую матрицу, потом вторую.

Пример:

hard.inhard.out
2 2 1 2 3 4 0 2 -1 1 1 0 4 3
1 3 1 3 5 11 23 35 -10 -20 -30
3 3 2 4 8 16 32 64 128 256 512 1 2 3 4 5 6 7 8 9 1 2 5 12 27 58 121 248 503


Источник: Муниципальный этап всероссийской олимпиады школьников по информатике, 2013-2014 учебный год

Обсудить       Отправить решение