Numberlink
Это cолвер игры Numberlink на Python с использованием Google OR-Tools (CP-SAT)
Цель: для каждой пары одинаковых чисел на поле проложить непересекающиеся ортогональные пути, которые соединяют пары и заполняют всё поле
Ввод
Текстовый формат:
ширина высота
строка 1
строка 2
...
строка H
Каждое число (кроме нулей) встречается ровно дважды — это концы одной цепочки
0 означает пустую клетку
Движение по клеткам — по сторонам (вверх/вниз/влево/вправо)
Пример:
4 4
1 2 3 4
0 0 0 0
0 0 0 0
1 2 3 4
Вывод
Если решение найдено - выводится таблица целых чисел (каждая строка — ряд решётки)
Если решения нет — строка: I can't solve it
Структура
fast_solve.py — общее медленное решение
solve_in_average.py — улучшенное решение (эвристики/ограничения)
main.py — чтение ввода, запуск солвера, печать результата