Advertisement
theo830

l0ol

Jun 1st, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main() {
  5. long long a,b;
  6. cin>>a>>b;
  7. long long x[a];
  8. long long y[a];
  9. long long z[a];
  10. long long q[a][25];
  11. long long k[a];
  12. long long cost[a][25]={0};
  13. for(int i=0;i<a;i++){
  14. k[i] = 1e6;
  15. cin>>x[i]>>y[i]>>z[i];
  16. q[i][0]= x[i] * y[i] * z[i];
  17. k[i] = min(x[i],y[i]);
  18. k[i] = min(k[i],z[i]);
  19. for(int j=1;j<k[i];j++){
  20. x[i]-=j;
  21. y[i]-=j;
  22. z[i]-=j;
  23. q[i][j] = x[i] * y[i] * z[i];
  24. }
  25. }
  26. long long dp[a+1][b+1]={0};
  27. for(int i=0;i<=a;i++){
  28. for(int j=0;j<=b;j++){
  29. for(int s=0;s<=k[i];s++){
  30. cost[i][s] = dp[i][j];
  31. if(i == 0 && j == 0){
  32. dp[i][j] = 1;
  33. }
  34. else if(i == 0 || j == 0){
  35. dp[i][j] = 0;
  36. }
  37. else if(j >= q[i][s]){
  38. min(dp[i-1][j],dp[i-1][j-q[i][s]]+cost[i][s]);
  39. }
  40. else{
  41. dp[i][j] = dp[i-1][j];
  42. }
  43. }
  44.  
  45. }
  46. }
  47. if(dp[a][b] != 0){
  48. cout<<dp[a][b];
  49. }
  50. else{
  51. cout<<-1;
  52. }
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement