Республиканская олимпиада по информатике 2009 года за 10 класс | Казахстанские олимпиады

Задача E. Физкультура

Ограничение по времени Ограничение по памяти
2 секунды 256 мегабайт

В список предметных олимпиад школьников решили, наконец, внести и физкультуру, в частности, спортивную ходьбу, бег без препятствий, бег с препятствиями, бег в мешках и так далее. Оргкомитет должен подготовить по одному маршруту для каждого вида соревнований. Для проведения соревнований была выделена прямоугольная территория, которую для удобства разделили на квадраты так, что получилась сетка N×MN \times M. Для каждого квадрата была определена стоимость его подготовки к соревнованиям. Также были определены квадраты, в которых могут начинаться и оканчиваться маршруты участников. Маршрутом будем считать такую последовательность квадратов, что каждые два соседних квадрата в этой последовательности имеют общую сторону. Так как все виды соревнований будут проводиться параллельно, никакие два маршрута не должны пересекаться по квадратам, иначе участники будут мешать друг другу. Ваша задача — помочь оргкомитету выбрать маршруты так, чтобы суммарная стоимость подготовки их к соревнованиям была минимально возможной.

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

Первая строка входного файла содержит три целых числа: NN, MM и KK (1N,M,K301 \le N, M, K \le 30), где NN, MM — размеры территории, а KK — количество видов соревнований.

Каждая из следующих NN строк содержит по MM целых чисел в пределах от 11 до 100100 — стоимость подготовки соответствующего квадрата к соревнованиям. Следующие KK строк содержат по 22 целых числа — номер строки и столбца для квадрата, в котором может начинаться какой-нибудь маршрут. Последние KK строк содержат также по 22 целых числа — номер строки и столбца для квадрата, в котором может заканчиваться какой-нибудь маршрут. Никакой квадрат не перечислен во входном файле дважды. Числа в строках разделены пробелами.

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

В выходной файл нужно вывести ``NosolutionNo solution'', если невозможно выбрать KK маршрутов, удовлетворяющих условию. В противном случае на первой строке выведите наименьшую суммарную стоимость подготовки, а на следующих строках — карту маршрутов. Карта маршрутов — это таблица размера N×MN \times M, в jj-м столбце ii-й строки которой расположен 00, если через соответствующих квадрат не проходит ни один маршрут, и целое положительное число XX (1XK)1 \le X \le K), если через него проходит маршрут для соревнования XX. Если оптимальных ответов несколько, то выведите любой. Числа в строках разделяйте пробелом.

Примеры

Вход

3 3 2
1 1 1
1 1 1
10 1 1
1 1
1 3
3 2
3 3

Выход

7
2 0 1
2 2 1
0 2 1