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

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

I got WA. Please check it. Thanks!
Послано SunMoonStar 24 янв 2003 11:59
program p1027;
const expppp:set of char=['0'..'9','=','+','-','*','/','(',')'];
var brackets,i,comment:integer; comm,expr:boolean; line:string;

{$APPTYPE CONSOLE}

procedure sout(st:string);
begin
     WRITELN(st); halt;
end;

begin
     expr:=false; comm:=false; brackets:=0; comment:=0;
     while not eof do
       begin
         readln(line); i:=1;
         while (i<=length(line)) do
           begin
             if (line[i]='(') then
               begin
                 if (line[i+1]='*') then
                   begin
                     if (line[i+2]<>')') or (not comm) then
                       begin
                         if (comment=0) then comm:=true;
                         inc(i); inc(comment);
                       end;
                   end else
                   begin
                     if (brackets=0) and (not comm) then expr:=true;
                     if (not comm) then inc(brackets);
                   end;
               end else
             if (line[i]=')') and (not comm) then
               begin
                 if (brackets=1) then expr:=false;
                 if (not comm) then dec(brackets);
               end else
             if (line[i]='*') and (line[i+1]=')') and comm then
               begin
                 if (comment=1) then comm:=false; inc(i); dec
(comment);
               end;
             if (line[i]=' ') and expr and (not comm) then sout
('NO');
             if expr and (not comm) and not (line[i] in expppp) then
sout('NO');
             if (brackets<0) or (comment<0) then sout('NO');
             inc(i);
           end;
       end;
     if (brackets<>0) or (comment<>0) then sout('NO');
     sout('YES');
end.