Cod sursa(job #1546973)
Utilizator | Data | 8 decembrie 2015 21:30:04 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.69 kb |
#include <fstream>
using namespace std;
int n,g,i,gr[5001],p[5001],d[5001],x,j,maxim;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int main (){
fin>>n>>g;
for (i=1;i<=n;i++){
fin>>gr[i]>>p[i];
}
//for (i=1;i<=5001;i++)
// x = -1;
maxim = 0;
d[0] = 0;
for (i=1;i<=n;i++){
for (j=g;j>=gr[i];j--){
//if (j+gr[i] < g)
d[j] = max ( d[j] , d[j-gr[i]] + p[i]);
if (d[j] > maxim)
maxim = d[j];
}
}
fout<<maxim;
/* for (i=5000;i>=0;i--)
if (d[i] != -1){
fout<<d[i];
break;
}
*/
return 0;
}