Cod sursa(job #1198318)

Utilizator testtVasilica Ionica testt Data 15 iunie 2014 13:58:20
Problema Patrate2 Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.08 kb
var n,i,cs,c0,cd,s,d,t:longint;
    nr:array[0..2,0..700000]of longint;


procedure inmulteste(x:longint);inline;
var i,j:longint;
begin
   c0 := 0;
   while x <> 0 do
   begin
     inc(c0);
     nr[0,c0] := x mod 10;
     x := x div 10;
   end;
   for i := 1 to c0+cs+5 do nr[d,i] := 0;
   cd := c0+cs-1;

   for i := 1 to c0 do
     for j := 1 to cs do
     begin
       nr[d,i+j-1] := nr[d,i+j-1] + nr[0,i]*nr[s,j];
     end;

   for i := 2 to cd do
   begin
     nr[d,i] := nr[d,i] + (nr[d,i-1] div 10);
     nr[d,i-1] := nr[d,i-1] mod 10;
   end;

   if nr[d,cd] > 10 then
   begin
     nr[d,cd+1] := nr[d,cd] div 10;
     nr[d,cd] := nr[d,cd] mod 10;
     inc(cd);
   end;

   cs := cd;
   t := s; s := d; d := t;
end;

begin
  assign(input,'patrate2.in'); reset(input);
  assign(output,'patrate2.out'); rewrite(output);

  readln(n);
  s := 1; d := 2;
  cs := 1; nr[s,1] := 1;

  for i := 2 to n do inmulteste(i);
  for i := 1 to n*n do
    inmulteste(2);

  for i := cs downto 1 do write(nr[s,i]);

  close(input);
  close(output);
end.