Cod sursa(job #87146)
Utilizator | Data | 26 septembrie 2007 18:41:59 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.42 kb |
#include<fstream.h>
int g,w,e[1001],c[1001],min=32000;
void energ(int en,int cost,int p)
{int i;
if(en<w)
{if(p==g+1) min=-1;
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;
f>>g>>w;
for(i=1;i<=g;i++)
f>>e[i]>>c[i];
energ(0,0,1);
h<<min<<'\n';
f.close(); h.close();
return 0;
}