Pagini recente » Cod sursa (job #1836582) | Cod sursa (job #704391) | Cod sursa (job #2984608) | Cod sursa (job #2603134) | Cod sursa (job #413750)
Cod sursa(job #413750)
#include<fstream.h>
ifstream f("energii.in");
ofstream h("energii.out");
int n,i,e[1001],c[1001],max,j,mx=1000000000;
int s,g,cst[200000];
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];
if(j+e[i]>=g&&mx>cst[j+e[i]])mx=cst[j+e[i]];
}
if(max>g)max=g;}
h<<mx-1;
/*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;
}