Pagini recente » Cod sursa (job #1184348) | Cod sursa (job #3204520) | Cod sursa (job #1437677) | Cod sursa (job #2142305) | Cod sursa (job #2835211)
#include<iostream>
#include<fstream>
using namespace std;
const int MAX_N=5100;
const int MAX_G=10100;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n,g,v[MAX_N],w[MAX_N],dp[2][MAX_G];
void read(){
in>>n>>g;
for(int i=1;i<=n;i++){
in>>w[i]>>v[i];
}
}
void solve(){
for(int i=1;i<=n;i++){
for(int s=0;s<=g;s++){
dp[i%2][s]=max(dp[i%2][s],dp[(i-1)%2][s]);
if(w[i]<=s){
dp[i%2][s]=max(dp[i%2][s],v[i]+dp[(i-1)%2][s-w[i]]);
}
}
}
out<<dp[n%2][g];
}
int main(){
read();
solve();
return 0;
}