Pagini recente » Cod sursa (job #1475812) | Cod sursa (job #1785269) | Cod sursa (job #2581784) | Cod sursa (job #2039343) | Cod sursa (job #282242)
Cod sursa(job #282242)
#include<stdio.h>
#define INF 10000002
int e[1002],c[1002],v[5002],i,n,w,sumc,p,j;
int min(int a, int b){
return a<b?a:b;
}
int main(){
FILE *f = fopen ("energii.in","r");
FILE *g = fopen ("energii.out","w");
fscanf(f,"%d%d",&n,&w);
for(i=1;i<=n;i++){
fscanf(f,"%d%d",&e[i],&c[i]);
sumc+=c[i];
}
if(sumc<w) {
fprintf(g,"%d",-1);
}
else{
v[0]=0;
for (i=1;i<=w;i++)
v[i] = INF;
p=0;
for(i=1;i<=n;i++) //v[j] = costul minim de a obtine cant j de energie
for(j=p;j>=0;j--)
if(v[j]!=INF)
if (v[min(j+e[i],w)]>v[j]+c[i]) {
if (p<min(j+e[i],w))
p = min(j+e[i],w);
v[min(j+e[i],w)]=v[j]+c[i];
}
fprintf(g,"%d",v[w]);
}
fclose(f);
fclose(g);
return 0;
}