Pagini recente » Cod sursa (job #1655751) | Cod sursa (job #672521) | Cod sursa (job #443044) | Cod sursa (job #2384948) | Cod sursa (job #883259)
Cod sursa(job #883259)
#include <fstream>
using namespace std;
int g, w, cmin=-1, c=0, e=0;
struct gen
{
int e,c;
}
a[1001];
int x[1001];
char valid (int k)
{
int i, ok;
ok=1;
for (i=1; i<=k-1; i++)
if (x[k]==x[i]) ok=0;
if (e+a[x[k]].e>w) ok=0;
return ok;
}
void back(int k)
{
int val;
for (val=1; val<=g; val++)
{
x[k]=val;
if (valid(k))
{
c+=a[x[k]].c;
e+=a[x[k]].e;
if (e==w)
{
if (cmin==-1)
{
cmin=c;
c=0;
e=0;
}
else if (c<cmin)
{
cmin=c;
c=0;
e=0;
}
}
else back(k+1);
}
}
}
int main()
{
int i;
ifstream f ("energii.in");
ofstream h ("energii.out");
f>>g>>w;
for (i=1; i<=g; i++) f>>a[i].e>>a[i].c;
back(1);
h<<cmin;
h.close();
f.close();
return 0;
}