есть двумерный массив(матрица):
0 0 0 0 0 0 0
0 0 2 0 0 0 0
0 2 0 2 0 0 0
0 2 0 2 0 0 0
0 0 2 0 2 0 0
0 0 0 2 0 0 0
0 0 0 0 0 0 0
0 - это пустая клетка
2 - это занятая клетка
Пользователь помечает клетку как занятую, и необходимо определить, имеется ли замкнутый контур для этой поставленной клетки. Если имеется несколько замкнутых контуров, то необходимо найти самый максимальный(чтоб закрывал наибольшее количество клеток).
Подскажите алгоритм.