Cod sursa(job #159452)
Utilizator | Data | 14 martie 2008 09:54:47 | |
---|---|---|---|
Problema | Energii | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream.h>
int g,w,e[1001],c[1001];
long int min=10000000;
void energ(int en,int cost,int p)
{int i;
if(en<w)
for(i=p;i<=g && cost<min;i++)
energ(en+e[i],cost+c[i],i+1);
else
if(cost<min) min=cost;
}
int main()
{ifstream f("energii.in");
ofstream h("energii.out");
int i,s=0;
f>>g>>w;
for(i=1;i<=g;i++)
{f>>e[i]>>c[i];
s+=e[i];
}
if(s<w) h<<"-1"<<'\n';
else{
energ(0,0,1);
h<<min<<'\n'; }
f.close();
h.close();
return 0;
}