Cod sursa(job #1860699)
Utilizator | gigi becali smecher sadpolk | Data | 28 ianuarie 2017 12:11:42 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.74 kb |
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int d[10005];
int main()
{
int last=0,i,j,g,p,n,maxi=0,GMAX;//j greutate d[j] profit
in>>n>>GMAX;
for(i=1;i<=GMAX;++i)
d[i]=-1;
d[0]=0;
for(i=1;i<=n;++i)
{
in>>g>>p;
for(j=last;j>=0;--j)
{
if(j+g>GMAX)continue;
if(d[j]!=-1)
{
if(d[j+g]<d[j]+p)
{
d[j+g]=d[j]+p;
if(j+g>last)
last=j+g;
}
}
}
}
for(i=1;i<=GMAX;++i)
if(d[i]>=maxi)
maxi=d[i];
out<<maxi;
return 0;
}