Pagini recente » Cod sursa (job #2728979) | Cod sursa (job #385430) | Cod sursa (job #1291437) | Cod sursa (job #1725554) | Cod sursa (job #357629)
Cod sursa(job #357629)
#include <stdio.h>
#define INF 10000
#define G 1001
#define W 5001
int energie[G];
int cost[G];
int lucru[W];
int main ()
{FILE *fin=fopen("energii.in","r");
if(!fin)return 0;
FILE *fout=fopen("energii.out","w");
if(!fout)return 0;
int g,w,i,j,costTot=INF;
fscanf(fin,"%d %d",&g,&w);
for (i=0;i<g;i++)
{fscanf(fin,"%d %d",&energie[i],&cost[i]);
}
lucru[0]=0;
for (i=1;i<w;i++)
{lucru[i]=INF;
}
for (i=w-1;i>=0;i--)
{for (j=0;j<g;j++)
{if(energie[j]+i>=w)
{if(cost[j]+lucru[i]<costTot)
{costTot=cost[j]+lucru[i];
}
}
else
{if(cost[j]+lucru[i]<lucru[i+energie[j]])
{lucru[i+energie[j]]=cost[j]+lucru[i];
}
}
}
}
fprintf(fout,"%d",costTot);
fclose(fout);
return 0;
}