Cod sursa(job #1324680)
Utilizator | Mihailescu Vlad Tiberiu VladTiberiu | Data | 22 ianuarie 2015 18:00:06 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct asd{
int g,p;
}a[1009];
int N,G,i,j;
int d[2][1008];
int main()
{
f >> N >> G;
for(i = 1; i <= N; i++){
f >> a[i].g >> a[i].p;
}
for(i = 1; i <= N; i++){
for(j = 1; j <= G; j++){
d[2][j] = d[1][j];
if(j - a[i].g >= 0){
d[2][j] = max(d[1][j] , d[1][j-a[i].g] + a[i].p);
}
}
for(j = 1; j <= G; j++){
d[1][j] = d[2][j];
d[2][j] = 0;
}
}
g << d[1][G];
return 0;
}