Я только что закончил участие в 2009 ACM ICPC Programming Conest в латиноамериканском финале. Эти вопросы касались Бразилии, Боливии, Чили и т.д.
Моя команда и я могли только закончить два вопроса из одиннадцати (неплохо, я думаю, для первой попытки).
Здесь мы могли бы закончить. Мне любопытно видеть какие-либо изменения кода. Вопрос полностью: ps: Эти вопросы также можно найти на официальном веб-сайте ICPC для всех.
В стране ACM правил царь греческий, который стал одержим порядком. Царство имело прямоугольную форму, и король разделил территорию на сетку небольших прямоугольных уездов. Перед смертью царь распределил графства среди своих сыновей.
Царь не знал о соперничестве между его сыновьями: первый наследник ненавидел второго, но не остальных, второй ненавидел третьего, но не остальных, и так далее... Наконец, последний наследник ненавидел первого наследника, но не другие наследники.Как только царь умер, странное соперничество между сыновьями Короля вызвало генерализованную войну в королевстве. Атаки происходили только между парами смежных уездов (соседние уезды - это те, которые разделяют одну вертикальную или горизонтальную границу). Граф X атаковал соседний граф Y всякий раз, когда X ненавидел Y. Атакованное графство всегда было завоевано. Все атаки, которые выполнялись одновременно и множество одновременных атак, назывались битвой. После определенного количества битв выжившие сыновья совершили перемирие и больше никогда не сражались.
Например, если у короля было три сына, названных 0, 1 и 2, на рисунке ниже показано, что происходит в первом сражении за заданное начальное распределение земли:
ВХОД
Ввод содержит несколько тестовых примеров. Первая строка тестового примера содержит четыре целых числа: N, R, C и K.
- N - количество наследников (2 <= N <= 100)
- R и C - Размеры земли. (2 <= R, C <= 100)
- K - количество сражений, которые будут иметь место. (1 <= K < 100)
Наследники идентифицируются последовательными целыми числами, начиная с нуля. Каждая из следующих строк R содержит C целых чисел HeirIdentificationNumber (говоря, какой наследник принадлежит этой земле), разделенных единичными пробелами. Это будет расположение исходной земли.
Последний тестовый пример - это строка, разделенная четырьмя нулями, разделенными одиночными пробелами. (Чтобы выйти из программы, так сказать)
Выход
Для каждого тестового примера ваша программа должна печатать R строк с целыми числами C каждый, разделенных единичными пробелами в том же формате, что и вход, представляющий распределение земли после всех сражений.
Sample Input: Sample Output:
3 4 4 3 2 2 2 0
0 1 2 0 2 1 0 1
1 0 2 0 2 2 2 0
0 1 2 0 0 2 0 0
0 1 2 2
Другой пример:
Sample Input: Sample Output:
4 2 3 4 1 0 3
1 0 3 2 1 2
2 1 2