Cod sursa(job #2210793)
Utilizator | Data | 7 iunie 2018 23:06:14 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct point{
int w,p;
};
const int NMax = 10003;
point a[NMax];
int n,G;
int dp[NMax];
int main()
{
f >> n >> G;
for(int i = 1; i <= n; ++i){
f >> a[i].w >> a[i].p;
}
for(int i = 1; i <= n; ++i){
for(int j = G; j >= 0; --j){
if(j - a[i].w >= 0){
dp[j] = max(dp[j], dp[j - a[i].w] + a[i].p);
}
}
}
g << dp[G] << '\n';
return 0;
}