Pagini recente » Cod sursa (job #218490) | Cod sursa (job #1780772) | Cod sursa (job #2715253) | Cod sursa (job #104565) | Cod sursa (job #2878234)
#include <bits/stdc++.h>
#define MAXN 5005
#define MAXG 10005
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g, dp[MAXG];
struct Obiect {
int w, p;
} obiecte[MAXN];
void citire() {
fin >> n >> g;
for (int i = 1; i <= n; i++)
fin >> obiecte[i].w >> obiecte[i].p;
}
void rezolvare() {
for (int i = 1; i <= n; i++)
for (int j = g; j >= obiecte[i].w; j--)
if (dp[j - obiecte[i].w] + obiecte[i].p > dp[j])
dp[j] = dp[j - obiecte[i].w] + obiecte[i].p;
fout << dp[g];
}
int main() {
citire();
rezolvare();
return 0;
}