Pagini recente » Cod sursa (job #2344237) | Cod sursa (job #664011) | Cod sursa (job #508137) | Cod sursa (job #2443758) | Cod sursa (job #412961)
Cod sursa(job #412961)
#include<fstream.h>
ifstream f("energii.in");
ofstream h("energii.out");
int n,i,e[1001],c[1001],max,j;
int s,g,cst[100000];
int main()
{ f>>n>>g;
for(i=1;i<=n;i++) { f>>e[i]>>c[i];
s+=e[i];
}
if(g>s)h<<-1;
else { max=0;cst[0]=1;
for(i=1;i<=n;i++)
for(j=max;j>=0;j--)if(cst[j] && (!cst[j+e[i]] || cst[j+e[i]]>cst[j]+c[i] )) { cst[j+e[i]]=cst[j]+c[i];
if(j+e[i]>max)max=j+e[i];
}
i=g;
while(!cst[i])i++;n=cst[i++];
for(;i<=max;i++)if(cst[i]&&n>cst[i])n=cst[i];
h<<n-1;
}
f.close();
h.close();
return 0;
}