Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int Knapsack01(int n,int s,int *wt,int *val){
- int dp[n+1][s+1];
- for(int i=0;i<=n;i++){
- for(int j=0;j<=s;j++){
- if(i==0 || j==0){
- dp[i][j]=0;
- continue;
- }
- if(wt[i-1] <= j){
- dp[i][j] = max(val[i-1]+dp[i-1][j-wt[i-1]],dp[i-1][j]);
- }
- else {
- dp[i][j]=dp[i-1][j];
- }
- }
- }
- return dp[n][s];
- }
- int main() {
- #ifndef ONLINE_JUDGE
- // for getting input from input.txt
- freopen("input.txt", "r", stdin);
- // for writing output to output.txt
- freopen("output.txt", "w", stdout);
- #endif
- int n,s;
- cin >> n >> s;
- int wt[n],val[n];
- for(int i=0;i<n;i++) cin >> wt[i];
- for(int i=0;i<n;i++) cin >> val[i];
- cout << Knapsack01(n,s,wt,val) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement