Pagini recente » Cod sursa (job #3139396) | Cod sursa (job #1540180) | Cod sursa (job #3165053) | Cod sursa (job #995165) | Cod sursa (job #21245)
Cod sursa(job #21245)
#include <fstream.h>
#include <iostream.h>
fstream f("energii.in",ios::in),tip("energii.out",ios::out);
int *sol,*e,*c,w,g,i,en;
long min=3000000;
int init()
{
f>>g; f>>w;
sol=new int[g+1];
e=new int[g+1];
c=new int[g+1];
for(i=1;i<=g;i++)
{f>>e[i]; f>>c[i];}
}
inline comp()
{
int s=0,en=0;
for (i=1;i<=g;i++)
if(sol[i]) {s+=c[i]; en+=e[i];}
if(min>s && en>=w)
min=s;
}
int back(int k)
{
if(k==g+1) comp();
else
{sol[k]=-1;
while(sol[k]<1)
{sol[k]++; back(k+1);}}
}
int main()
{init();
back(1);
if(min!=3000000)
tip<<min;
else tip<<-1;}