ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1027. Снова D++

Ограничение времени: 0.5 секунды
Ограничение памяти: 64 МБ

Вступление

Язык D++, в развитие которого было вложено столько сил участниками наших мартовских соревнований, продолжает совершенствоваться. Его создатели пытаются сделать синтаксис языка как можно более простым и свободным с тем, чтобы облегчить программирование на этом языке будущего. Конечно, некоторое минимальное количество правил должно остаться.
Ваша программа должна проверять соблюдение некоторых из этих правил, связанных с расстановкой скобок и комментариями.

Задача

Текст правильной программы на D++ состоит из символьной части, арифметических выражений и комментариев. Комментарии могут встречаться где угодно и содержать любые символы. Комментарий всегда открывается парой символов '(*' и заканчивается парой символов '*)'. Каждый комментарий обязательно должен закрываться. Арифметические выражения в D++ всегда открываются круглой скобкой '(', закрываются круглой скобкой ')' и могут содержать внутри себя только символы '=+-*/0123456789)(' и переводы строк. Арифметическое выражение не может начинаться с пары символов '(*'. Скобки в арифметическом выражении могут быть вложенными; при этом они обязаны быть сбалансированными. Это означает, кто как '((1)))', так и '(23))((+)' не являются правильными арифметическими выражениями. Правильность выражения определяется только правильностью расстановки в нем скобок. Наконец, весь остальной текст программы (получающийся из исходного отбрасыванием всех комментариев и арифметических выражений) может состоять из произвольных символов, за исключением символов '(' и ')'.
Отметим, что пробелы ВПОЛНЕ возможны в тексте программы везде, кроме арифметических выражений.

Исходные данные

На входе записан некоторый текст. Объем этого текста не превышает 10000 символов. В тексте могут встречаться латинские буквы, цифры, скобки, знаки арифметических действий, пробелы и переводы строк.

Результат

Выведите YES, если введенный текст является корректной программой на D++, и NO в противном случае.

Пример

исходные данные
Hello, here is a sample D++ program. It contains some arithmetical expressions like
(2+2=4), (2+-/*) and ((3+3)*3=20(*this is not true, but you don’t have to verify it :-) *)+8)
 (* the closing bracket in the previous comment is also in order, since this bracket
does not belong to any arithmetical expression*)
результат
YES
Автор задачи: Леонид Волков, Алексей Лысенко
Источник задачи: Второе командное соревнование школьников Свердловской области по программированию, 7 октября 2000