Pagini recente » Cod sursa (job #3032136) | Cod sursa (job #42277) | Cod sursa (job #2386963) | Cod sursa (job #1858579) | Cod sursa (job #1656365)
#include <stdio.h>
using namespace std;
FILE*f=fopen("rucsac.in","r");
FILE*h=fopen("rucsac.out","w");
//complexitate n*gmax
int main()
{
long long n,gmax,i,j,mx,cmax[10002]={0},sol,g[5002],c[5002];
fscanf(f,"%lld%lld",&n,&gmax);
for (i=1;i<=n;i++) fscanf(f,"%lld%lld",&g[i],&c[i]);
cmax[0]=0;
mx=0;
for (i=1;i<=n;i++)
for (j=mx;j>=0;j--)
if (cmax[j+g[i]]<cmax[j]+c[i]&&j+g[i]<=gmax&&(!j||cmax[j]))
{
cmax[j+g[i]]=cmax[j]+c[i];
if (j+g[i]>mx) mx=j+g[i];
}
sol=0;
for (i=0;i<=gmax;i++)
if (cmax[i]>sol) sol=cmax[i];
fprintf(h,"%lld",sol);
fclose(h);
fclose(f);
return 0;
}