Pagini recente » Cod sursa (job #665046) | Cod sursa (job #2169455) | Cod sursa (job #1837372) | Cod sursa (job #726041) | Cod sursa (job #1702947)
#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=0;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(e>=w && c<=d[w])
d[w]=c;
if(e<w && c<=d[e])
d[e]=c;
}
if(d[w]==INF)
fprintf(fo,"0");
else
fprintf(fo,"%d", d[w]);
fclose(fi);
fclose(fo);
return 0;
}