Pagini recente » Cod sursa (job #3285564) | Cod sursa (job #2793676) | Cod sursa (job #1801869) | Cod sursa (job #2912013) | Cod sursa (job #132078)
Cod sursa(job #132078)
//energii
#include<stdio.h>
FILE*fin=fopen("energii.in","r");
FILE*fout=fopen("energii.out","w");
#define maxn 1001
#define inf 20000000
#define min(a,b)((a)<(b)?(a):(b))
int main()
{
int w,en[maxn],cost[maxn],cmin[2][5001],old,nw,i,n,j;
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&w);
for(i=1;i<=n;i++)
fscanf(fin,"%d%d",&en[i],&cost[i]);
fclose(fin);
for(i=1;i<=w;i++)
cmin[0][i]=inf;
cmin[0][0]=0;
for(i=1;i<=n;i++)
{
nw=i%2;old=!nw;
for(j=0;j<=w;j++)
if(j-en[i]>=0) cmin[nw][j]=min(cmin[old][j-en[i]]+cost[i],cmin[old][j]);
else cmin[nw][j]=cmin[old][j];
}
if(cmin[nw][w]==inf) cmin[nw][w]=-1;
fprintf(fout,"%d",cmin[nw][w]);
fclose(fout);
return 0;
}