Pagini recente » Cod sursa (job #359234) | Cod sursa (job #1759836) | Cod sursa (job #2800080) | Cod sursa (job #193158) | Cod sursa (job #1368386)
#include<stdio.h>
int pack[2][10001],weight[10001],val[10001],pos=1;
int main()
{
FILE *fin,*fout;
fin=fopen("rucsac.in","r");
fout=fopen("rucsac.out","w");
int n,g;
fscanf(fin,"%d %d",&n,&g);
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d %d",&weight[i],&val[i]);
}
for(int i=weight[pos];i<=g;i++)
{
pack[0][i]=val[pos];
}
pos++;
for(int i=2;i<=n;i++)
{
for(int j=1;j<=g;j++)
{
if(j-weight[pos]<0)
{
pack[1][j]=pack[0][j];
}
else
{
if(pack[0][j]>pack[0][j-weight[pos]]+val[pos])
{
pack[1][j]=pack[0][j];
}
else
{
pack[1][j]=pack[0][j-weight[pos]]+val[pos];
}
}
}
for(int j=1;j<=g;j++)
{
//fprintf(fout,"%d ",pack[1][j]);
pack[0][j]=pack[1][j];
}
//fprintf(fout,"\n");
pos++;
}
fprintf(fout,"%d",pack[1][g]);
}