Cod sursa(job #2384871)
Utilizator | Data | 21 martie 2019 11:37:46 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int dp[10005];
int main()
{
int n, g;
fin >> n >> g;
for (int j = 0; j < n; j ++) {
int w, p;
fin >> w >> p;
for (int i = g; i > 0; i --) {
if (dp[i - w] != 0) dp[i] = max(dp[i], dp[i - w] + p);
if (i == w) dp[i] = max(dp[i], p);
}
}
fout << dp[g];
return 0;
}