Pagini recente » Cod sursa (job #1267821) | Cod sursa (job #3142768) | Cod sursa (job #228233) | Cod sursa (job #1556256) | Cod sursa (job #1534691)
#include <cstdio>
#define MAXG 1000
#define MAXW 5000
#define INF 1000000000
int d[MAXW+1],E[MAXG],C[MAXG];
inline int min(int a,int b){
if(a<b) return a;
return b;
}
int main(){
FILE*fi,*fout;
int i,j,n,G,W;
fi=fopen("energii.in" ,"r");
fout=fopen("energii.out" ,"w");
fscanf(fi,"%d%d" ,&G,&W);
for(i=0;i<G;i++)
fscanf(fi,"%d%d" ,&E[i],&C[i]);
for(i=1;i<=W;i++)
d[i]=INF;
for(i=0;i<G;i++){
for(j=W;j>=0;j--)
if(E[i]+j>W)
d[W]=min(d[W],d[j]+C[i]);
else
d[j+E[i]]=min(d[j+E[i]],d[j]+C[i]);
}
if(d[W]==INF)
fprintf(fout,"-1");
else
fprintf(fout,"%d" ,d[W]);
fclose(fi);
fclose(fout);
return 0;
}