Cod sursa(job #2276817)
Utilizator | Data | 5 noiembrie 2018 14:16:21 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
#define DIM 10010
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N,G,g[DIM/2],p[DIM/2],d[DIM],i,j,maxim;
int main() {
fin>>N>>G;
for (i=1;i<=N;i++) {
fin>>g[i]>>p[i];
}
d[0]=1;
for (i=1;i<=N;i++) {
for (j=G;j>=0;j--) {
if (d[j]!=0&&j+g[i]<=G)
d[j+g[i]]=max(d[j+g[i]],d[j]+p[i]);
}
}
for (i=0;i<=G;i++)
maxim=max(maxim,d[i]);
fout<<maxim-1;
return 0;
}