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

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

WHY I Get CE??????????????? NEED HELP!!!!!!!!!!!!!!!
Послано Ural_Happy New Year! 19 апр 2003 20:01
I can run in my delphi6 but CE here!!!!!!!!!
The judge system must see it
----------------------------------------------------
program Project2;

{$APPTYPE CONSOLE}

const setchar=['(',')','=','+','-','*','/','0'..'9','*'];
var i,j,pp,n,k:longint;
    ch:char;
    str:array[0..10000] of char;
    t:boolean;
begin
     i:=0;
     while not eof do begin read(ch); inc(i); str[i]:=ch; end;
     n:=i; i:=0;
     repeat
         inc(i);
         j:=i;
         if str[i]='(' then
            if str[i+1]='*' then
               begin
                    t:=false;
                    for j:=i+2 to n do if (str[j]='*')and(str[j+1]
=')') then
                        t:=true;
                    if t=false then begin writeln('NO'); halt; end
                       else i:=j+2;
                    j:=0;
               end
            else begin
                 pp:=1;
                 repeat
                       inc(j);
                       if str[j] in setchar then begin end
                          else begin writeln('NO'); halt; end;
                       if (str[j]='*')and(str[j-1]='(') then
                          begin
                          dec(pp);
                          for k:=j to n do
                              if (str[k]='*')and(str[k+1]=')') then
                                 begin
                                      j:=k+2;
                                      break;
                                 end;
                          if k>=n then begin writeln('NO'); halt; end;
                          end;
                       if str[j]=')' then dec(pp);
                       if pp=0 then break;
                       if str[j]='(' then inc(pp);
                 until j>=n;
                 if pp<>0 then begin writeln('NO'); halt; end;
                 i:=j+1;
                 end;
     until i>=n;
     writeln('YES');
     readln;
end.
Submit it via E-mail and you can where's error. Read the FAQ if you don't know how (-)
Послано MadPsyentist/Sam 21 апр 2003 03:54
My English is poor, can you say a little clearly
Послано Ural_Happy New Year! 21 апр 2003 17:18
>
when u choose "reply to my e-mail",Judge will tell u why it's get ce(-)
Послано TheBlaNK 22 апр 2003 08:41
> >
Thanks, and I know where CE. But I got WA. Please Help
Послано Ural_Happy New Year! 22 апр 2003 14:50
Here is my cole

program t1027;
{const fin='f:\temp\in4.txt';}
var i,j,pp,n,k:longint;
    ch:string;
    str:array[1..10000] of char;
    t:boolean;
begin
{     assign(input,fin);
     reset(input);}
     j:=1;
     while not eof do
           begin
           readln(ch);
           for i:=1 to length(ch) do
           begin str[j]:=ch[i]; inc(j); end;
           end;
     n:=j; i:=0;
     repeat
         inc(i);
         j:=i;
         if str[i]='(' then
            if str[i+1]='*' then
               begin
                    t:=false;
                    for j:=i+2 to n do if (str[j]='*')and(str[j+1]
=')') then
                        t:=true;
                    if t=false then begin writeln('NO'); halt; end
                       else i:=j+2;
                    j:=0;
               end
            else begin
                 pp:=1;
                 repeat
                       inc(j);
                       if not(str[j] in ['(',')','0'..'9','+','-
','*','/','='])
                          then begin writeln('NO'); halt; end;
                       if (str[j]='*')and(str[j-1]='(') then
                          begin
                          dec(pp);
                          for k:=j+1 to n do
                              if (str[k]='*')and(str[k+1]=')') then
                                 begin j:=k+2; break; end;
                          if k>=n then begin writeln('NO'); halt; end;
                          end;
                       if str[j]=')' then dec(pp);
                       if pp=0 then break;
                       if str[j]='(' then inc(pp);
                 until j>=n;
                 if pp<>0 then begin writeln('NO'); halt; end;
                 i:=j+1;
                 end;
     until i>=n;
     writeln('YES');
{     close(input);}
end.
Re: Thanks, and I know where CE. But I got WA. Please Help
Послано TheBlaNK 23 апр 2003 19:56
compile my code
and test ur prog :)
i think this prob description is not clear


#include <stdio.h>
#include <ctype.h>
FILE *fp,*fx;
int main()
{
 long false,com=0,sum=0;
 char kao,chr;
 fp=stdin; fx=stdout;
// fp=fopen("1027.in","r"); fx=fopen("1027.out","w");
 false=0;
 kao=0;
  while(fscanf(fp,"%c",&chr)!=EOF)
   {
    if(com&&chr==')'&&kao=='*') com=0;
    else if(!com&&chr==')'&&kao=='*'&&!sum) false=1;
    else if(!com&&chr==')'&&kao=='*'&&sum) sum--;
    else if(!com)
      {
     if(chr=='(') sum++;
     else if(chr=='*'&&kao=='(') { sum--; com=1; chr=0; }
     else if(chr==')') sum--;
     else if(sum>0&&!(isdigit(chr)
||chr=='\r'||chr=='\n'||chr=='='||chr=='+'||chr=='-
'||chr=='*'||chr=='/'))
      false=1;
      }
    if(false||sum<0) break;
    kao=chr;
   }
  if(false||sum>0||sum<0||com) fprintf(fx,"NO\n");
  else fprintf(fx,"YES\n");
// fclose(fp); fclose(fx);
 return 0;
}
Thank you anyway.But I didn't know C or C++
Послано Ural_Happy New Year! 24 апр 2003 12:13
If you can test my cole and find my bugs, thanks a lot.
Mail me Walter_ddr@hotmail.com