Pagini recente » Cod sursa (job #2367059) | Cod sursa (job #2791008) | Cod sursa (job #1752753) | Cod sursa (job #1160892) | Cod sursa (job #1702951)
#include <stdio.h>
#include <stdlib.h>
#define MAXW 5000
#define INF 2000000000
int d[1+MAXW];
int main(){
int i, j, g, w, e, c;
FILE*fi,*fo;
fi=fopen("energii.in","r");
fo=fopen("energii.out","w");
fscanf(fi,"%d%d", &g, &w);
for(i=1;i<=MAXW;i++)
d[i]=INF;
for(i=0;i<g;i++){
fscanf(fi,"%d%d", &e, &c);
for(j=w;j>=0;j--){
if(d[j]!=INF){
if(j+e>=w && d[j]+c<d[w])
d[w]=d[j]+c;
if(j+e<w && d[j]+c<d[j+e])
d[j+e]=d[j]+c;
}
}
}
if(d[w]==INF)
fprintf(fo,"-1");
else
fprintf(fo,"%d", d[w]);
fclose(fi);
fclose(fo);
return 0;
}