ПРАКТИКА РАБОТЫ С ОЧЕРЕДЬЮ




добавить в очередь точку (x0,y0)
запомнить цвет начальной точки
пока очередь не пуста
  {
  взять из очереди точку (x,y)
  если A[y][x] = цвету начальной точки то
    {
    A[y][x] = 2;
    добавить в очередь точку (x-1,y)
    добавить в очередь точку (x+1,y)
    добавить в очередь точку (x,y-1)
    добавить в очередь точку (x,y+1)
    }
  }

Task
Time limit: 1000 ms,
Memory limit: 32 Mb

Рисунок задан в виде матрицы A, в которой элемент A[y][x] определяет цвет пикселя на пересечении строки y и столбца x. Перекрасить в цвет 2 одноцветную область, начиная с пикселя (x0,y0).  
Пример:
Ввод:
5
1 2
0 1 0 1 1
1 1 1 2 2
0 1 0 2 2
3 3 1 2 2
0 1 1 0 0

Вывод:
0 2 0 1 1
2 2 2 2 2
0 2 0 2 2
3 3 1 2 2
0 1 1 0 0

(c) К.Ю. Поляков

Auto CHOOSE THE PROGRAMMING NECESSARY LANGUAGE!
Attach the program source file:
or enter the source code in the language:

Rules for designing programs and a list of errors during automatic task verification
           

Results: