Pagini recente » Cod sursa (job #1942148) | Cod sursa (job #1315899) | Cod sursa (job #1158742) | Cod sursa (job #2656751) | Cod sursa (job #1816907)
#include<stdio.h>
#define EMAX 10000001
int costmin[10001];
int main (){
FILE *in,*out;
in = fopen ("energii.in","r");
out = fopen ("energii.out","w");
int n,cant,i,ener,minim,val,cost,j;
//init cu cost max posibil
for (i=1;i<=10001;i++)
costmin[i] = 20000000;
//costmi[0] = 0;
fscanf (in,"%d%d",&n,&cant);
ener = 0;
for (i=1;i<=n;i++){
fscanf (in,"%d%d",&val,&cost);
ener = ener + val < EMAX ? ener + val : EMAX;
//calc
for (j=ener;j>=val;j--){
if (costmin[j] > costmin[j-val] + cost)
costmin[j] = costmin[j-val] + cost;
}
}
minim = 20000000;
for (i=cant;i <= 10001; i++)
minim = costmin[i] < minim ? costmin[i] : minim ;
if (minim == 20000000)
fprintf(out,"-1");
else
fprintf(out,"%d",minim);
fclose (in);
fclose (out);
return 0;
}