Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. /// http://abc060.contest.atcoder.jp/tasks/arc073_b
  2.  
  3.  
  4. /// Bismillahir Rahmanir Rahim
  5. /// S. M. Shakir Ahsan Romeo ( Pure_Protea, #theromeo421, Cosmos_Freak )
  6. /// CSE Discipline, Khulna University, Khulna
  7. /// Monirampur, Jessore.
  8.  
  9. #include <bits/stdc++.h>
  10. using namespace std;
  11.  
  12. typedef long long lng;
  13. typedef vector < int > vi;
  14. typedef vector < lng > vl;
  15. typedef pair < int, int > pii;
  16. typedef vector < pii > vpii;
  17.  
  18. const int inf = 1 << 30;
  19. const long long linf = 1LL << 62;
  20. const double PI = acos(-1.0), dinf = (double)(1LL << 62), eps = (double)(1e-9);
  21.  
  22. double distance(double x1, double y1, double x2, double y2)
  23. {
  24. x1 -= x2;
  25. y1 -= y2;
  26. return sqrt(x1 * x1 + y1 * y1);
  27. }
  28. long long POW(long long b, long long p)
  29. {
  30. if(p == 0)
  31. return 1;
  32. long long t = POW(b, p >> 1);
  33. if(p & 1)
  34. return t * t * b;
  35. return t * t;
  36. }
  37. long long bigmod(long long b, long long p, long long m)
  38. {
  39. if(p == 0)
  40. return 1;
  41. long long t = POW(b, p >> 1) % m;
  42. t = (t * t) % m;
  43. if(p & 1)
  44. t = (t * b) % m;
  45. return t;
  46. }
  47. inline int getint()
  48. {
  49. int x;
  50. scanf("%d", &x);
  51. return x;
  52. }
  53. inline long long getlng()
  54. {
  55. long long x;
  56. scanf("%lld", &x);
  57. return x;
  58. }
  59.  
  60. lng gcd(lng a, lng b)
  61. {
  62. return !b ? a : gcd(b, a % b);
  63. }
  64.  
  65. lng lcm(lng a, lng b)
  66. {
  67. return (a / gcd(a, b)) * b;
  68. }
  69.  
  70. int dx4[] = {-1, 0, 1, 0};
  71. int dy4[] = {0, 1, 0, -1};
  72. int dx8[] = {-1, -1, -1, 0, 0, 1, 1, 1};
  73. int dy8[] = {-1, 0, 1, -1, 1, -1, 0, 1};
  74.  
  75. #define theromeo421 main()
  76. #define segtree int lft = node << 1, rgt = lft | 1, mid = (b + e) >> 1;
  77. #define mem(x, y) memset(x, y, sizeof x);
  78. #define II getint()
  79. #define LL getlng()
  80. #define sz(x) ((int)x.size())
  81. #define sqr(x) ((x) * (x))
  82. #define max3(a,b,c) max(a, max(b,c))
  83. #define min3(a,b,c) min(a, min(b,c))
  84. #define pr1(x) cout << x << endl
  85. #define pr2(x,y) cout << x << ' ' << y << endl
  86. #define pr3(x,y,z) cout << x << ' ' << y << ' ' << z << endl
  87. #define pr4(a,b,c,d) cout << a << ' ' << b << ' ' << c << ' ' << d << endl
  88. #define rep(i, n) for(int i = 0; i < n; ++i)
  89. #define rep1(i, n) for(int i = 1; i <= n; ++i)
  90. #define repab(i, a, b) for(int i = a; i <= b; ++i)
  91. #define repstl(it, x) for(auto it = x.begin(); it != x.end(); it++)
  92. #define repbstl(it, x) for(auto it = x.rbegin(); it != x.rend(); it++)
  93. #define forch(it, x) for(auto it : x)
  94. #define pb push_back
  95. #define all(x) x.begin(), x.end()
  96. #define xx first
  97. #define yy second
  98. #define dbg(x) cerr << #x << " : " << x << endl;
  99. #define read(a) freopen(a, "r", stdin);
  100. #define write(a) freopen(a, "w", stdout);
  101. #define prv(v) rep(i, v.size()) cout << v[i] << " \n"[i + 1 == v.size()];
  102. #define prmp(x) repstl(it, x) pr2(it->xx, it->yy)
  103. #define pause int ppause; cin >> ppause;
  104. #define pf printf
  105. #define sf scanf
  106.  
  107. const int N = 101;
  108. int n, W, arr[N], v[N];
  109. map < lng , int > dp[N];
  110.  
  111. int call(int i, lng w)
  112. {
  113. if(i == n)
  114. return 0;
  115. if(dp[i].find(w) != dp[i].end())
  116. return dp[i][w];
  117. int ret = call(i + 1, w);
  118. if(w + arr[i] <= W)
  119. ret = max(ret, v[i] + call(i + 1, w + arr[i]));
  120. return dp[i][w] = ret;
  121. }
  122.  
  123. int theromeo421
  124. {
  125. n = II;
  126. W = II;
  127. rep(i, n)
  128. {
  129. arr[i] = II;
  130. v[i] = II;
  131. dp[i].clear();
  132. }
  133. printf("%d\n", call(0, 0));
  134. return 0;
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement