Сложность: 27%
По многочисленным просьбам владельцев NFT из браузера убрали кнопку Сохранить как, а из новых клавиатур убрали клавишу Print Screen. Теперь скопировать NFT, увы, невозможно – они стали уникальными невзаимозаменяемыми токенами. Хотя, по сути, всё ещё остаются просто картинками из пикселей.
Зато Иван нашёл в блокчейне уязвимость, которая позволяет изменить NFT, которым ты владеешь, как угодно переставив пискели в нём. Это открыло потрясающую схему заработка: Иван покупает дешевое NFT, представляющее собой кашу из пикселей, а затем переставляет пиксели так, чтобы оно было похоже на другое, дорогое NFT.
Каждый пиксель в NFT окрашен в какой-то цвет от до . Пиксельная разница двух NFT – это сумма разниц значений цветов на одинаковых позициях по модулю.
У Ивана есть NFT . Найдите, как он должен переставить пиксели в своём NFT, чтобы его пиксельная разница с NFT была минимальна.
Входные данные
В единственной строке записаны числа и () – ширина и высота NFT.
В следующих строках записано по чисел. -тое число -й строки - это цвет клетки в NFT , которое будет подделывать Иван.
В следующих строках записано по чисел. -тое число -й строки - это цвет клетки в NFT , которое купил себе Иван.
Выходные данные
В первой строке выведите одно число – минимально возможную пиксельную разницу.
Затем выведите строк по чисел, где -тое число -й строки – это номер пикселя из изначального NFT, который следует переставить на позицию . Номер пикселя на позиции равен при индексации с нуля.
Если ответов несколько, выведите любой.
Подзадачи
№ | баллы | необх. подзадачи | ограничения |
1 | 10 | - | |
2 | 24 | 1 | |
3 | 22 | - | Все цвета в попарно различны, все цвета в попарно различны |
4 | 44 | 2, 3 | Нет доп. ограничений |
STDIN | STDOUT |
3 3 1 1 1 1 4 1 3 3 2 3 2 1 2 1 4 2 1 1 | 2 3 5 8 9 6 2 7 1 4 |