|  | 
|  | 
| back to board | Why WA?????????? help please!!!!!!!!!!!!!!!1 Posted by Oleg  27 Oct 2002 17:50const max=1000;var n2,j,i,k,n,l,n1:longint;
 a:array [1..1000] of longint;
 b:array [1..max] of longint;
 begin
 readln(n);
 if n=0 then begin writeln(0); halt(0); end;
 n1:=1;
 a[n1]:=n;
 if n>1 then
 begin
 l:=0;
 while l=0 do
 begin
 i:=1;
 while i<=n1 do
 begin
 if (a[i] mod 2 =0) then
 if ((a[i] div 2)*(a[i] div 2)>a[i]) then
 begin
 inc(n1);
 a[n1]:=a[i] div 2;
 a[i]:=a[i] div 2;
 l:=1;
 end;
 if (a[i] mod 2 =1) then
 if ((a[i] div 2)*((a[i] div 2)+1)>a[i]) then
 begin
 inc(n1);
 a[n1]:=1+(a[i] div 2);
 a[i]:=a[i] div 2;
 l:=1;
 end;
 inc(i);
 end;
 l:=1-l;
 end;
 end;
 fillchar(b,sizeof(b),0);
 b[max]:=1;
 n2:=1;
 for i:=1 to n1 do
 begin
 for j:=max downto (max-n2) do b[j]:=b[j]*a[i];
 j:=max;
 while j>=(max-n2) do
 begin
 if (b[j]>9) then
 begin
 if j=n2 then
 begin
 inc(n2);
 end;
 b[j-1]:=b[j-1]+(b[j] div 10);
 b[j]:=(b[j] mod 10);
 end;
 dec(j);
 end;
 end;
 j:=1;
 while b[j]=0 do inc(j);
 for i:=j to max do write(b[i]);
 writeln;
 end.
Re: Why WA?????????? help please!!!!!!!!!!!!!!!1 Your solution is wrong. For example, for input 8 it outputs 16, butreal answer is 18 (3*3*2). See my solution, but it is WA too :(
 | 
 | 
|