Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. program kalkulytor;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7. var
  8. dp,prev:array[-10..1000000] of integer;
  9. n, min, i:integer;
  10. function min_f(a, b:integer):integer;
  11. begin
  12. if (a > b) then min := b
  13. else min := a;
  14. end;
  15.  
  16. procedure get_pre(x: integer);
  17. begin
  18. if (x != 1) then
  19. get_pre(prev[x]);
  20. write(x, ' ');
  21. end;
  22.  
  23. begin
  24. read(n);
  25. dp[0] := 0;
  26. dp[1] := 0;
  27. for i := 2 to n do begin
  28. min := dp[i - 1];
  29. prev[i] := i - 1;
  30. if (i mod 2 = 0) then
  31. if (min > dp[i div 2]) then begin
  32. min := dp[i div 2];
  33. prev[i] := i div 2;
  34. end;
  35. if (i mod 3 = 0) then
  36. if (min > dp[i div 3]) then begin
  37. min := dp[i div 3];
  38. prev[i] := i div 3;
  39. end;
  40. dp[i] := min + 1;
  41. end;
  42. writeln(dp[n]);
  43. get_pre(n);
  44. readln; readln;
  45. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement