12135. Код ТаК


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Степан винайшов TaK код, двовимірний код. Код TaK задовольняє всім наведеним нижче умовам:

  • Це регіон, що складається з дев’яти горизонтальних рядків і дев’яти вертикальних стовпців.
  • Усі 18 клітинок у верхній лівій і нижній правій областях три на три чорні.
  • Усі 14 клітинок, які примикають (по горизонталі, вертикалі чи діагоналі) до верхньої лівої чи нижньої правої області три на три, білі.

Не дозволяється змінювати код TaK.

Вам надається сітка з \(N\) горизонтальних рядків і \(M\) вертикальних стовпців. Стан сітки описується \(N\) рядками, \(S_1 ​,… S_N\) ​, кожен довжиною \(M\). Комірка в \(i\)-му рядку зверху та \(j\)-му стовпці зліва є чорною, якщо \(j\) -й символ \(S_i\) ​ — це '#', і білий, якщо це '.'.

Знайдіть усі області дев’ять на дев’ять, які повністю містяться в сітці, які задовольняють умови коду TaK.

Обмеження

  • \(9≤N,M≤100\)
  • \(N\) і \(M\) є цілими числами.
  • \(S_i\) — рядок довжини \(M\), що складається з '.' і '#'.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(N\) рядків містять \(S_i\).

Формат вихідних даних

Для всіх пар \((i,j)\), таких, що область дев’ять на дев’ять, верхня ліва комірка якої знаходиться в \(i\)-му рядку зверху та \(j\)-му стовпці зліва, задовольняють умови коду TaK, вивести рядок, що містить \(i\), пробіл і \(j\) у такому порядку.

Пари повинні бути відсортовані в лексикографічному порядку зростання; тобто \(i\) має бути в порядку зростання, а в межах \(i\), \(j\) має бути в порядку зростання.

Приклад вхідних даних

19 18
###......###......
###......###......
###..#...###..#...
..............#...
..................
..................
......###......###
......###......###
......###......###
.###..............
.###......##......
.###..............
............###...
...##.......###...
...##.......###...
.......###........
.......###........
.......###........
........#.........

Приклад вихідних даних

1 1
1 10
7 7
10 2

Код TaK виглядає так, де '#' – чорна клітинка, '.' є білою клітинкою, а '?' може бути як чорним, так і білим.

У сітці, заданій вхідними даними, область дев’ять на дев’ять, верхня ліва комірка якої знаходиться в 10-му рядку зверху та 2-му стовпці зліва, задовольняє умови коду TaK, як показано нижче.

Приклад вхідних даних

9 21
###.#...........#.###
###.#...........#.###
###.#...........#.###
....#...........#....
#########...#########
....#...........#....
....#.###...###.#....
....#.###...###.#....
....#.###...###.#....

Приклад вихідних даних

1 1

Приклад вхідних даних

18 18
######............
######............
######............
######............
######............
######............
..................
..................
..................
..................
..................
..................
............######
............######
............######
............######
............######
............######

Приклад вихідних даних

 

Може не бути регіону, який би відповідав умовам TaK.


Коментарі

Ще немає коментарів.