Pagini recente » Cod sursa (job #1735892) | Cod sursa (job #1520088) | Cod sursa (job #638012) | Cod sursa (job #114907) | Cod sursa (job #2909104)
#include <iostream>
#include <fstream>
int greutate[5001];
int valoare[5001];
int dp[10001][5001];
int main() {
int N, G;
int i, j;
std::ifstream fin("rucsac.in");
fin >> N >> G;
for (i = 1; i <= N; i++) {
fin >> greutate[i];
fin >> valoare[i];
}
fin.close();
for (i = 1; i <= N; i++)
for (j = 1; j <= G; j++) {
if (greutate[i] <= j)
dp[j][i] = std::max(valoare[i] + dp[j - greutate[i]][i - 1], dp[j][i - 1]);
else
dp[j][i] = dp[j][i - 1];
}
std::ofstream fout("rucsac.out");
fout << dp[G][N];
fout.close();
return 0;
}