Pagini recente » Cod sursa (job #1909285) | Cod sursa (job #790249) | Cod sursa (job #1908651) | Cod sursa (job #2896001) | Cod sursa (job #95227)
Cod sursa(job #95227)
#include <stdio.h>
#define infile "energii.in"
#define outfile "energii.out"
#define NMAX 1005
#define COSTMAX 15005
#define INF 1000000000
FILE *fin,*fout;
int n,w;
int energie[NMAX],cost[NMAX];
int cmin[COSTMAX];
void citire()
{
int i;
fin=fopen(infile,"r");
fscanf(fin,"%d %d",&n,&w);
for(i=0;i<n;i++)
fscanf(fin,"%d %d",&energie[i],&cost[i]);
fclose(fin);
}
void solve()
{
int i,j;
for(i=1;i<=w+10000;i++)
cmin[i]=-1;
cmin[0]=0;
for(j=0;j<n;j++)
for(i=w;i>=0;i--)
if(cmin[i]!=-1 && (cmin[i+energie[j]]==-1 || cmin[i+energie[j]] > cmin[i]+cost[j]))
cmin[i+energie[j]] = cmin[i]+cost[j];
}
void solution()
{
int i,min=INF;
for(i=w;i<=w+10000;i++)
if(cmin[i]!=-1 && min>cmin[i])
min=cmin[i];
fout=fopen(outfile,"w");
if(min==INF)
fprintf(fout,"0\n");
else
fprintf(fout,"%d\n",min);
fclose(fout);
}
int main()
{
citire();
solve();
solution();
return 0;
}