Skip to content

Commit ea0eab4

Browse files
authored
Merge pull request kothariji#49 from chhipanikhil9/nikhil
Add (SPOJ)The_Knapsack_Problem.cpp
2 parents 68c429f + fadfc0d commit ea0eab4

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include<bits/stdc++.h>
2+
#define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
3+
#define int long long
4+
#define pb push_back
5+
#define ff first
6+
#define ss second//typedef second ss;
7+
#define unmap unordered_map<int,int>
8+
#define unset unordered_set<int>
9+
#define maxpq priority_queue<int>
10+
#define minpq priority_queue<int, vector<int>, greater<int>>
11+
#define foton(i,n) for(int i=0;i<n;i++)
12+
#define faton(i,a,n) for(int i=a;i<=n;i++)
13+
#define mod 1000000007
14+
const int inf = 10000007;
15+
#define endl "\n"
16+
using namespace std;
17+
int size[2001],val[2001];
18+
int t[2002][2002];
19+
int knapsack(int s,int n){
20+
if(s==0 || n==0) return 0;
21+
if(t[n][s] != -1) return t[n][s];
22+
if(size[n-1] <= s){
23+
return t[n][s] = max((val[n-1]+knapsack(s-size[n-1],n-1)),knapsack(s,n-1));
24+
}
25+
else{
26+
return t[n][s] = knapsack(s,n-1);
27+
}
28+
}
29+
30+
int32_t main(){
31+
fastio;
32+
int s,n;
33+
cin>>s>>n;
34+
35+
for(int i=0;i<n;i++){
36+
cin>>size[i]>>val[i];
37+
}
38+
memset(t,-1,sizeof(t));
39+
40+
cout<<knapsack(s,n)<<endl;
41+
return 0;
42+
}

0 commit comments

Comments
 (0)