Pagini recente » Cod sursa (job #2031095) | Cod sursa (job #2245674) | Cod sursa (job #3001481) | Cod sursa (job #264334) | Cod sursa (job #894457)
Cod sursa(job #894457)
#include <iostream>
#include <fstream>
#define nmax 5005
#define gmax 10005
using namespace std;
int dp[nmax][gmax];
int N, G, profit[nmax], greutate[nmax];
int main() {
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int i, j;
f>>N>>G;
for(i=1; i<=N; i++)
f>>greutate[i]>>profit[i];
for(i=1; i<=N; i++)
for(j=1; j<=G; j++)
dp[i][j] = 0;
dp[1][ greutate[1] ] = profit[1];
for(i = 2; i <= N; i++)
for(j = greutate[i]; j <= G; j++) {
dp[i][j] = dp[i-1][j];
if(dp[i-1][j - greutate[i]] != 0) dp[i][j] = dp[i-1][j - greutate[i]] + profit[i];
}
g<<dp[N][G]<<"\n";
return 0;
}