Pagini recente » Cod sursa (job #1252325) | Cod sursa (job #2527541) | Cod sursa (job #1735449) | Cod sursa (job #3217611) | Cod sursa (job #1067682)
#include<string.h>
#include<stdio.h>
FILE *f=fopen("rucsac.in","r");
FILE *g=fopen("rucsac.out","w");
#define maxn 5001
#define maxg 10001
int greutate[maxn],profit[maxn],opt[maxg],help[maxg];
int i,j,n,gr,sol;
int main()
{
fscanf(f,"%d %d",&n,&gr);
for(i=1;i<=n;i++) fscanf(f,"%d %d",&greutate[i],&profit[i]);
for (i=1;i<=n;i++)
{
for (j=gr-greutate[i];j>=0;j--)
{
if (help[j]+greutate[i]<=gr)
{
help[j]+=greutate[i];
opt[j]+=profit[i];
}
else if (profit[j]>opt[j])
{
help[j]=greutate[i];
opt[j]=profit[j];
}
if (opt[j]>sol) sol=opt[j];
}
}
fprintf(g,"%d",sol);
return 0;
}