|
|
back to boardCommon BoardWhy WA??? I'm think, what my programm is right!!! Problem 1123 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.(+) Try this input: 119921. Your program will output 129921, while the correct answer is 120021. Good luck! Re: Короче говоря, тот тест при& > 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) > > 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. |
|
|