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

Обсуждение задачи 1027. Снова D++

No subject
Послано Lin 6 июл 2001 20:24
{Help!What's wrong with my problem?}
Var Text                : Array[1..10001] of Char;
    Long                : Integer;
    D1,D2               : Integer;
    Now                 : Integer;

Procedure Init;
Var S     : String;
    i     : Integer;
Begin
  Long := 0;
  Repeat
    Readln(S);
    For i := 1 to Length(S) do
      If S[i]<>#0 then
        Text[Long+i] := S[i];
    Inc(Long,Length(S));
  Until S='';
End;

Procedure Main;
Var i,j : Integer;
      P : Integer;
Begin
  P := 0;
  Now := 0;
  Repeat
    Inc(P);
    If Text[P]+Text[P+1]='(*' then
      Begin
        Inc(D1);
        Now := 2;
        Inc(P);
        Continue;
      End;
    If Now=2 then
      If Text[P]+Text[P+1]='*)' then
        Begin
          Dec(D1);
          If D1=0 then
            Begin
              If D2<>0 then Now := 1
                       else Now := 0;
            End;
          Inc(P);
          Continue;
        End;
    If Now<2 then
      Begin
        If Text[P]='(' then
          Begin
            Inc(D2);
            Now := 1;
            Continue;
          End;
        If Text[P]=')' then
          Begin
            Dec(D2);
            If D2=0 then Now := 0;
            Continue;
          End;
      End;
      If Now=1 then
        If Not(Text[P] in ['(',')','0'..'9','+','-
','*','/','=']) then
          Begin
            Writeln('No');
            Halt;
          End;
    If Now=0 then
      If Text[P]=')' then
        Begin
          Writeln('No');
          Exit;
        End;
  Until P=Long;
  If (D1<>0) or (D2<>0) then
    Begin
      Writeln('No');
      Exit;
    End;
  Writeln('Yes');
End;

Begin
  Init;
  Main;
End.