ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Common Board

Why WA??? I'm think, what my programm is right!!! Problem 1123
Posted by Evgeny Reshetnikov 9 Jan 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.(+)
Posted by Nazarov Denis (nsc2001@rambler.ru) 9 Jan 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
Posted by Nazarov Denis (nsc2001@rambler.ru) 9 Jan 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)
Posted by Nazarov Denis (nsc2001@rambler.ru) 9 Jan 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.