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

Общий форум

Why WA??? I'm think, what my programm is right!!! Problem 1123
Послано Evgeny Reshetnikov 9 янв 2002 18:07
This is my program:

Program n1123;
  Var
    a:array [0..2001] of char;
    n,i:word;
    pr:boolean;

Begin
  a[0]:=' ';
  n:=0;
  While Ord(a[n])<>26 Do
    Begin
      n:=n+1;
      Read(a[n]);
    End;
  n:=n-1;

  pr:=true;
  If n<>1 Then
    Begin
      For i:=n downto (n div 2) Do
        Begin
          If a[i]>a[n+1-i] Then
            pr:=false
          Else
            If a[i]<a[n+1-i] Then
              pr:=true;
          a[i]:=a[n+1-i];
        End;
      If Not pr Then
        Begin
          i:=(n div 2)+(n mod 2);
          Repeat
            If a[i]='9' Then
              Begin
                a[i]:='0';
                If n+1-i<>i Then
                  a[n+1-i]:='0';
              End
            Else
              Begin
                a[i]:=Chr(Ord(a[i])+1);
                If n+1-i<>i Then
                  a[n+1-i]:=Chr(Ord(a[n+1-i])+1);
                Break;
              End;
            Dec(i);
          Until false;
        End;
    End;
  For i:=1 to n Do
    Write(a[i]);
  WriteLn;
End.
Re: Read disscus border! Your program is wrong on Rybak Michael.(+)
Послано Nazarov Denis (nsc2001@rambler.ru) 9 янв 2002 20:27
Try this input: 119921.
Your program will output     129921,
while the correct answer is  120021.

Good luck!
Re: &#1050;&#1086;&#1088;&#1086;&#1095;&#1077; &#1075;&#1086;&#1074;&#1086;&#1088;&#1103;, &#1090;&#1086;&#1090; &#1090;&#1077;&#1089;&#1090; &#1087;&#1088;&#1080;&amp
Послано Nazarov Denis (nsc2001@rambler.ru) 9 янв 2002 20:28
> This is my program:
>
> Program n1123;
>   Var
>     a:array [0..2001] of char;
>     n,i:word;
>     pr:boolean;
>
> Begin
>   a[0]:=' ';
>   n:=0;
>   While Ord(a[n])<>26 Do
>     Begin
>       n:=n+1;
>       Read(a[n]);
>     End;
>   n:=n-1;
>
>   pr:=true;
>   If n<>1 Then
>     Begin
>       For i:=n downto (n div 2) Do
>         Begin
>           If a[i]>a[n+1-i] Then
>             pr:=false
>           Else
>             If a[i]<a[n+1-i] Then
>               pr:=true;
>           a[i]:=a[n+1-i];
>         End;
>       If Not pr Then
>         Begin
>           i:=(n div 2)+(n mod 2);
>           Repeat
>             If a[i]='9' Then
>               Begin
>                 a[i]:='0';
>                 If n+1-i<>i Then
>                   a[n+1-i]:='0';
>               End
>             Else
>               Begin
>                 a[i]:=Chr(Ord(a[i])+1);
>                 If n+1-i<>i Then
>                   a[n+1-i]:=Chr(Ord(a[n+1-i])+1);
>                 Break;
>               End;
>             Dec(i);
>           Until false;
>         End;
>     End;
>   For i:=1 to n Do
>     Write(a[i]);
>   WriteLn;
> End.
Re: Sorry. Your program work wrigth on the test. Your error: in input there are some symbols ' '(space[code 32]).Input can end with symbols #10,#13,#26. Good luck (I get AC with your program)
Послано Nazarov Denis (nsc2001@rambler.ru) 9 янв 2002 21:04
> > This is my program:
> >
> > Program n1123;
> >   Var
> >     a:array [0..2001] of char;
> >     n,i:word;
> >     pr:boolean;
> >
> > Begin
> >   a[0]:=' ';
> >   n:=0;
> >   While Ord(a[n])<>26 Do
> >     Begin
> >       n:=n+1;
> >       Read(a[n]);
> >     End;
> >   n:=n-1;
> >
> >   pr:=true;
> >   If n<>1 Then
> >     Begin
> >       For i:=n downto (n div 2) Do
> >         Begin
> >           If a[i]>a[n+1-i] Then
> >             pr:=false
> >           Else
> >             If a[i]<a[n+1-i] Then
> >               pr:=true;
> >           a[i]:=a[n+1-i];
> >         End;
> >       If Not pr Then
> >         Begin
> >           i:=(n div 2)+(n mod 2);
> >           Repeat
> >             If a[i]='9' Then
> >               Begin
> >                 a[i]:='0';
> >                 If n+1-i<>i Then
> >                   a[n+1-i]:='0';
> >               End
> >             Else
> >               Begin
> >                 a[i]:=Chr(Ord(a[i])+1);
> >                 If n+1-i<>i Then
> >                   a[n+1-i]:=Chr(Ord(a[n+1-i])+1);
> >                 Break;
> >               End;
> >             Dec(i);
> >           Until false;
> >         End;
> >     End;
> >   For i:=1 to n Do
> >     Write(a[i]);
> >   WriteLn;
> > End.