Pagini recente » Cod sursa (job #2224539) | Cod sursa (job #1352598) | Cod sursa (job #1073040) | Cod sursa (job #1306506) | Cod sursa (job #132080)
Cod sursa(job #132080)
//energii
#include<stdio.h>
FILE*fin=fopen("energii.in","r");
FILE*fout=fopen("energii.out","w");
#define maxn 1001
#define inf 200000000
#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++)
{
cmin[nw][j]=inf;
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;
}