Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #pragma GCC optimize("Ofast,no-stack-protector")
  6. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  7. #pragma GCC optimize("unroll-loops")
  8.  
  9. /// Typedef
  10. typedef long long ll;
  11.  
  12. #define sc1(a) scanf("%lld",&a)
  13. #define sc2(a,b) scanf("%lld %lld",&a,&b)
  14.  
  15. #define pf1(a) printf("%lld\n",a)
  16. #define pf2(a,b) printf("%lld %lld\n",a,b)
  17.  
  18. #define vpnt(ans) for(ll i = 0; i < ans.size(); i++) cout << ans[i] << (i + 1 < ans.size() ? ' ' : '\n');
  19. #define apnt(arr, num) for(ll i = 0; i < num; i++) cout << arr[i] << (i + 1 < num ? ' ' : '\n');
  20.  
  21. #define mx 100007
  22. #define mod 100000007
  23. #define PI acos(-1.0)
  24. #define size1 200005
  25.  
  26. #define no cout << "NO" << endl
  27. #define yes cout << "YES" << endl
  28.  
  29. #define pb push_back
  30. #define ff first
  31. #define ss second
  32. #define mp make_pair
  33. #define case cout << "Case " << t++ << ": ";
  34.  
  35. typedef vector <ll> vll;
  36. typedef map <ll, ll> mll;
  37. typedef pair <ll, ll> pll;
  38. typedef vector <pair <ll, ll> > vpll;
  39.  
  40. ll dp[2000];
  41. void uglyDP()
  42. {
  43. dp[0] = 1;
  44. ll multiple_2 = 2, multiple_3 = 3, multiple_5 = 5;
  45. ll pos2 = 0, pos3 = 0, pos5 = 0;
  46.  
  47. for(ll i = 1; i <= 1505; i++){
  48. ll next_uglyNUm = min(multiple_2, min(multiple_3, multiple_5));
  49. dp[i] = next_uglyNUm;
  50.  
  51. if(next_uglyNUm == multiple_2){
  52. pos2++;
  53. multiple_2 = dp[pos2] * 2;
  54. }
  55. if(next_uglyNUm == multiple_3){
  56. pos3++;
  57. multiple_3 = dp[pos3] * 3;
  58. }
  59. if(next_uglyNUm == multiple_5){
  60. pos5++;
  61. multiple_5 = dp[pos5] * 5;
  62. }
  63. }
  64. }
  65.  
  66. int main()
  67. {
  68. ll m, tc, num, t = 1;
  69.  
  70. uglyDP();
  71.  
  72. while (sc1(num) && num){
  73. cout << dp[num - 1] << endl;
  74. }
  75. }
  76.  
  77. /*
  78. Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence
  79. 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...
  80.  
  81. Sample Input
  82. 1
  83. 2
  84. 9
  85. 0
  86. Sample Output
  87. 1
  88. 2
  89. 10
  90.  
  91. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement