Pagini recente » Cod sursa (job #1126344) | Cod sursa (job #1058602) | Cod sursa (job #2580098) | Cod sursa (job #1138614) | Cod sursa (job #1040933)
#include <stdio.h>
using namespace std;
int profit[10000];
struct val{
int p,g;
};
val v[5005];
int main()
{
FILE *in,*out;
in=fopen("rucsac.in","r");
out=fopen("rucsac.out","w");
int n,k,j,i;
fscanf(in,"%d%d",&n,&k);
for (i=1;i<=n;i++)
{
fscanf(in,"%d%d",&v[i].g,&v[i].p);
}
for (i=1;i<=k;i++)
{
profit[i]=-1;
}
for (i=1;i<=n;i++)
{
for (j=k-v[i].g;j>=0;j--)
if (profit[j]!=-1&&profit[j]+v[i].p>profit[j+v[i].g])
profit[j+v[i].g]=profit[j]+v[i].p;
}
int max=-1;
for (i=1;i<=k;i++)
{
if (max<profit[i])
max=profit[i];
}
fprintf(out,"%d",max);
return 0;
}