ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Timus Top Coders: First Challenge

Описание     Задачи     Отправить на проверку     Состояние проверки     Результаты
Соревнование завершено

A. Кредитные операции

Ограничение времени: 0.25 секунды
Ограничение памяти: 64 МБ

Вступление

Крупный предприниматель Владимир Дубинин, в недалёком прошлом больше известный как Вован Палёный, контролирует трест из N предприятий. Бывший подельник Владимира, а ныне известный банкир Александр Кулаков по прозвищу Саня Кривой владеет холдингом из N банков. Как и полагается у старых друзей, предприятия г-на Дубинина берут кредиты исключительно у банков г-на Кулакова, в то время как банки г-на Кулакова выдают кредиты только предприятиям г-на Дубинина. Причём с целью уклонения от уплаты налогов вся информация о размерах кредитов тщательно скрывается.
Но тут на сцене появляется давний конкурент Владимира и Александра генерал милиции Иван Ломов, когда-то носивший кличку Ваня Гнилой. Г-н Ломов хочет отомстить г-ну Дубинину и г-ну Кулакову за старые обиды и выявить все кредитные операции между их предприятиями и банками.

Задача

Для начала люди Ивана произвели выемку документов из офисов предприятий Владимира и для каждого предприятия выяснили суммарный размер кредитов SR[i], полученных этим предприятием. Затем в ходе аналогичных операций для каждого банка Александра был установлен суммарный размер кредитов SC[j], выданных этим банком. Последним шагом является заполнение так называемой кредитной матрицы на основе полученных данных. В данном случае кредитная матрица представляет собой квадратную таблицу из N строк и N столбцов, в которой каждый элемент A[i, j] должен быть равен размеру кредита, взятого i-м предприятием г-на Дубинина у j-го банка г-на Кулакова. Доподлинно известно, что размер любого кредита является целым числом от 0 до 100. Помните, что полученная в ходе следственных действий информация могла быть сфальсифицирована, и тогда заполнить кредитную матрицу не получится.

Исходные данные

Первая строка содержит целое число N (2 ≤ N ≤ 100). Вторая строка содержит N целых чисел SR[i] (0 ≤ SR[i] ≤ 32000). Третья строка содержит N целых чисел SC[j] (0 ≤ SC[j] ≤ 32000). Сумма всех SR[i] равняется сумме всех SC[j].

Результат

Выведите "NO", если кредитная матрица не может быть заполнена. Иначе в первой строке выведите "YES", а в каждой из следующих N строк выведите через пробел N соответствующих элементов A[i, j] кредитной матрицы. Если задача имеет несколько решений, можно вывести любое из них.

Пример

исходные данныерезультат
4
267 157 188 259
193 320 346 12
YES
100 55 100 12
0 70 87 0
0 95 93 0
93 100 66 0
Автор задачи: Илья Гребнов, Никита Рыбак, Дмитрий Ковалёв
Источник задачи: Timus Top Coders: First Challenge
Чтобы отправить решение этой задачи на проверку перейдите в Архив задач: 1421. Кредитные операции