Автор Тема: помогите сделат програму c++  (Прочитано 1373 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nika

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
    • E-mail
помогите сделат програму c++
« : 18 Ноябрь 2012, 21:00:19 »


Еще Беси уважает "совершенно сбалансированные строки", в которых
за строкой из левых скобок следует строка их правых скобок такой же длины.

 (((())))

Имеется двумерный массив из N*N символов ( и ).
Начиная с левого верхнего угла массива нужно пройти, выбирая символы
так, чтобы построенная строка была совершенно сбалансированной
и имела максимальную длину.

На каждом шагу  можно двигаться вверх, вниз, влево или вправо, но нельзя
заходить в одну и ту же клетку более одного раза. Можно зайти не во все
клетки.

PROBLEM NAME: hshoe

INPUT FORMAT:

* Строка 1: Целое число N (2 <= N <= 5).

* Строки 2..N+1: Каждая строка содержит строку из N скобок.
        Все вместе эти строки описывают решетку N*N.

SAMPLE INPUT (файл hshoe.in):

4
(())
()((
(()(
))))

OUTPUT FORMAT:

* Line 1:Длина наибольшей совершенно сбалансированной строки.
        Если Беси не может построить совершенно сбалансированную строку
        например, если левый верхний угол содержит символ )., то выведите 0.


SAMPLE OUTPUT (файл hshoe.out):

8

OUTPUT DETAILS:

Последовательность шагов, которую нужно выполнить, чтобы получит
ответ 8 такова:
1())
2)((
345(
876)