Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program AA;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- var
- n, i, dl, fr, osn, str, tr: integer;
- mas: array[1..1000, 1..1000] of integer;
- procedure check(a,b: integer);
- begin
- if(mas[a,b] > 9) then begin
- inc(mas[a,b-1], mas[a,b] div 10);
- mas[a,b] := mas[a,b] mod 10;
- if(b = fr) then dec(fr);
- end;
- end;
- procedure kostyl();
- var
- pp: integer;
- begin
- for pp := 1 to fr do
- if(mas[str,pp] > 0) then begin fr := pp; break; end;
- end;
- begin
- readln(n);
- str := 1;
- dl := 850;
- fr := 850;
- mas[str,dl] := 1;
- for osn := 2 to n do begin
- inc(str);
- for i := dl downto fr do begin
- mas[str,i] := mas[str,i] + mas[str-1,i] * (osn mod 10);
- check(str, i); check(str, i - 1);
- end;
- if(osn > 9) then begin
- inc(str);
- for i := dl downto fr-1 do begin
- mas[str,i-1] := mas[str,i-1] + mas[str-2,i] * ((osn div 10) mod 10);
- check(str, i-1); check(str, i-2); check(str, i-3);
- end;
- kostyl();
- end;
- if(osn > 9) then begin
- inc(str);
- for i := dl downto fr do begin
- mas[str,i] := mas[str-2,i] + mas[str-1,i] + mas[str,i];
- check(str, i); check(str, i - 1); check(str, i - 2);
- end;
- end;
- end;
- {for i := fr to dl do
- write(mas[str-2,i]);
- writeln;
- for i := fr to dl do
- write(mas[str-1,i]); writeln; }
- tr := 0;
- for i := fr to dl do begin
- write(mas[str,i]); inc(tr); if(tr = 3) then begin write(' '); tr := 0; end end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment