Pagini recente » Cod sursa (job #907995) | Cod sursa (job #2035799) | Cod sursa (job #2327068) | Cod sursa (job #2822124) | Cod sursa (job #2875144)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N,G;
int W[5001];
int P[5001];
/// DP[i][j] = profitul maxim pt primele i cutii
int DP[2][100001];
int main()
{
fin >> N >> G;
for(int i=1;i<=N;i++)
fin >> W[i] >> P[i];
for(int i=1;i<=N;i++){
for(int j=W[i];j<=G;j++)
DP[1][j]=max(DP[0][j],DP[0][j-W[i]]+P[i]);
for(int j=W[i];j<=G;j++)
DP[0][j]=DP[1][j];
}
fout << DP[1][G];
return 0;
}