Из прямоугольника размером M на N, клетки которого раскрашены в черный и белый цвет, требуется вырезать квадрат размера K на K, раскрашенный в шахматном порядке

(то есть любые две соседние клетки раскрашены в разные цвета).

Формат входных данных:
Введите числа M, N, K (1<=K<=M, N<=900). Далее в M строках введите N чисел 0 или 1, задающие цвета клеток прямоугольника.

Формат выходных данных:
Программа должна выводить номера строки и столбца клетки – левого верхнего угла вырезаемой доски. Если требуемый квадрат вырезать невозможно, программа должна выводить одно число 0.

code: #basic
FOR cM = 1 TO M - K
FOR cN = 1 TO N - K
  startColor = A(cM, cN) 'цвет первой клетки
  FOR i = 1 TO K
  FOR j = 1 TO K
    trueColor = ABS((i + j) MOD 2 - startColor) 'требуемый цвет
    IF A(cM + i - 1, cN + j - 1) <> trueColor THEN 'не совпал
      GOTO colorError 'двигаемся дальше
    END IF
  NEXT j
  NEXT i
  PRINT cM; cN
  GOTO gameOver 'нашли ответ
: colorError
NEXT cN
NEXT cM
ptint 0
: gameOver

автор: Toxa33rus

Поделиться:

Похожие статьи: