Pagini recente » Cod sursa (job #386199) | Cod sursa (job #557818) | Cod sursa (job #1541968) | Cod sursa (job #240334) | Cod sursa (job #1816908)
#include<stdio.h>
#define EMAX 10001
int costmin[EMAX];
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<=EMAX;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 <= EMAX; 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;
}