| Заключительный тур XI областной олимпиады на приз Губернатора 2026, 9-10 классы, Вологодская область |
|---|
| Закончено |
Имеется прямоугольное поле из $$$n \times m$$$ цветных шариков трёх возможных цветов. За один шаг можно поменять местами два любых шарика. Определите, за какое наименьшее число шагов можно сделать так, чтобы поле разбилось на одноцветные прямоугольники — по одному прямоугольнику каждого цвета (из имеющихся).
В первой строке входных данных записаны два целых числа $$$n$$$ и $$$m$$$. В следующих $$$n$$$ строках записаны по $$$m$$$ чисел 1, 2 или 3 — цвета шариков.
Выведите единственное целое число — минимальное количество шагов. Если решения не существует, то выведите -1.
Подзадача 1 (до 20 баллов): $$$1 \le n, m \le 10$$$, цвета шариков могут быть только 1 или 2
Подзадача 2 (до 20 баллов): $$$1 \le n, m \le 1000$$$, цвета шариков могут быть только 1 и 2
Подзадача 3 (до 24 баллов): $$$1 \le n, m \le 10$$$, цвета шариков могут быть 1, 2 или 3
Подзадача 4 (до 36 баллов): $$$1 \le n, m \le 1000$$$, цвета шариков могут быть 1, 2 или 3
3 41 2 1 12 1 1 33 3 3 1
2
2 21 11 1
0
2 31 1 11 1 2
-1
В первом примере достаточно заменить первые два шарика в первой строке и последние два шарика в последнем столбце.
Напоминание для пишущих на Python. Ввести набор целых чисел, записанных через пробел, можно так:
c = [int(x) for x in input().split()]
| Название |
|---|


