Задача E. Физкультура
Ограничение по времени | Ограничение по памяти |
---|---|
2 секунды | 256 мегабайт |
В список предметных олимпиад школьников решили, наконец, внести и физкультуру, в частности, спортивную ходьбу, бег без препятствий, бег с препятствиями, бег в мешках и так далее. Оргкомитет должен подготовить по одному маршруту для каждого вида соревнований. Для проведения соревнований была выделена прямоугольная территория, которую для удобства разделили на квадраты так, что получилась сетка . Для каждого квадрата была определена стоимость его подготовки к соревнованиям. Также были определены квадраты, в которых могут начинаться и оканчиваться маршруты участников. Маршрутом будем считать такую последовательность квадратов, что каждые два соседних квадрата в этой последовательности имеют общую сторону. Так как все виды соревнований будут проводиться параллельно, никакие два маршрута не должны пересекаться по квадратам, иначе участники будут мешать друг другу. Ваша задача — помочь оргкомитету выбрать маршруты так, чтобы суммарная стоимость подготовки их к соревнованиям была минимально возможной.
Формат входного файла
Первая строка входного файла содержит три целых числа: , и (), где , — размеры территории, а — количество видов соревнований.
Каждая из следующих строк содержит по целых чисел в пределах от до — стоимость подготовки соответствующего квадрата к соревнованиям. Следующие строк содержат по целых числа — номер строки и столбца для квадрата, в котором может начинаться какой-нибудь маршрут. Последние строк содержат также по целых числа — номер строки и столбца для квадрата, в котором может заканчиваться какой-нибудь маршрут. Никакой квадрат не перечислен во входном файле дважды. Числа в строках разделены пробелами.
Формат выходного файла
В выходной файл нужно вывести ``'', если невозможно выбрать маршрутов, удовлетворяющих условию. В противном случае на первой строке выведите наименьшую суммарную стоимость подготовки, а на следующих строках — карту маршрутов. Карта маршрутов — это таблица размера , в -м столбце -й строки которой расположен , если через соответствующих квадрат не проходит ни один маршрут, и целое положительное число (, если через него проходит маршрут для соревнования . Если оптимальных ответов несколько, то выведите любой. Числа в строках разделяйте пробелом.
Примеры
Вход
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