아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Крестики-нолики

시간 제한2초메모리 제한512 MB

요약
주어진 판 조각에서 X가 즉시 이기거나, O의 어떤 응수에도 다음 수에 이기는 수의 개수를 센다.
난이도

보통10점 중 6점

유형
시뮬레이션, 완전 탐색, 게임 이론
정답자
아직 제출이 없습니다

문제

Пете и Васе стало очень скучно на уроке биологии, и они решили поиграть в любимую всеми школьниками игру в крестики-нолики до пяти в ряд на бесконечном поле.

Рассмотрим кратко правила игры. Игра происходит на бесконечном клетчатом поле, два игрока делают ходы по очереди, первый игрок ходит крестиками, а второй --- ноликами. В свой ход игрок выбирает свободную клетку поля и ставит туда свой символ. Если после хода очередного игрока на поле есть пять его символов подряд по вертикали, горизонтали или диагонали, то сделавший такой ход игрок объявляется победителем и игра заканчивается.

Петя и Вася уже довольно долго играют в игру. Сейчас должен ходить Петя, который играет крестиками. Петя надеется побыстрее завершить игру и хочет выиграть не более чем за два, а лучше за один ход. Петя называет ход оптимальным, если для этого хода выполнено одно из двух:

  • этот ход приводит к немедленной победе Пети;
  • не существует хода, который приводит к немедленной победе Пети, но если Петя сделает этот ход, то Вася не выиграет следующим ходом и, вне зависимости от ответного хода Васи, у Пети будет следующий ход, который приведет к его немедленной победе.

Помогите Пете найти количество оптимальных ходов.

입력

В первой входного файла находятся два натуральных числа nn, mm (1≤n,m≤2001 \le n, m \le 200) --- размеры прямоугольника, содержащего все уже поставленные на поле крестики и нолики.

Следующие nn строк содержат по mm символов, каждый из которых равен одному из следующих: <<.>> (точка), <<X>> (заглавная латинская буква <<икс>>) или <<0>> (ноль). При этом <<.>> обозначает пустую клетку, <<X>> обозначает крестик, а <<0>> обозначает нолик. Гарантируется, что на поле находится равное число крестиков и ноликов, и ни один игрок еще не одержал победу.

출력

Выведите одно число --- количество оптимальных ходов Пети.

예제3

  1. 예제 1

    입력
    5 3
    ...
    000
    XXX
    ...
    ...
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4 4
    ..0.
    .XX0
    .0X.
    ....
    
    예상 출력
    0
    
  3. 예제 3

    입력
    5 6
    ......
    .XXX..
    .0000.
    ..X...
    ......
    
    예상 출력
    0