Cod sursa(job #1446618)
Utilizator | Data | 2 iunie 2015 13:23:47 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int a[2][5001], g, gmax, p, pmax, n, i, j;
int main() {
fi >> n >> gmax;
for(i=1;i<=n;i++){
fi >> g >> p;
for(j=1;j<=gmax;j++)
if(j >= g)
if(p + a[0][j-g] > a[1][j])
a[1][j] = a[0][j-g] + p;
else a[1][j] = a[0][j];
for(j=0;j<=gmax;j++) a[0][j] = a[1][j];
}
fo << a[1][gmax];
return 0;
}
/*
* 1 2 3 4 5 6 7 8 9 10
a 0 0 7 7 7 7 7 7 7 7
b 0 0 7 7 7 11
g 3 3 1 1 2 1
p 7 4 2 9 4 5
*/