Pagini recente » Cod sursa (job #2950323) | Cod sursa (job #636437) | Cod sursa (job #902161) | Cod sursa (job #233385) | Cod sursa (job #576671)
Cod sursa(job #576671)
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
long g; int viz[18],n,nr,w[18],mini;
long gr[18];
int back(int k)
{
int i;
if(k==n+1)
{
if(nr<mini)
mini=nr;
}
else
{
for(i=1;i<=n;i++)
if((viz[i]==0)&&(gr[nr]+w[i]<=g))
{
gr[nr]=gr[nr]+w[i];
viz[i]=1;
back(k+1);
viz[i]=0;
gr[nr]=gr[nr]-w[i];
}
else if(viz[i]==0)
{
nr++;
if(nr>mini)
{ nr--;break;}
gr[nr]=w[i];
viz[i]=1;
back(k+1);
viz[i]=0;
//gr[nr]=gr[nr]-w[i];
nr--;
}
}
}
int main()
{
ifstream f("zebughil.in");
ofstream gr("zebughil.out");
int i,j;
for(i=1;i<=3;i++)
{
f>>n>>g;
for(j=1;j<=n;j++)
{ f>>w[j];
viz[j]=0;
}
mini=100000;
nr=1;
back(1);
gr<<mini<<"\n";
}
}