Pagini recente » Cod sursa (job #228953) | Cod sursa (job #1081675) | Cod sursa (job #2594403) | Cod sursa (job #1173023) | Cod sursa (job #576604)
Cod sursa(job #576604)
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;
long g; int viz[18],x[18],n,nr,w[18],mini;
long long gr[18];
long long s;
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))
{
//s=s+w[i];
gr[nr]=gr[nr]+w[i];
viz[i]=1;
//x[k]=w[i];
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;
//x[k]=w[i];
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;
x[j]=0;
}
s=0;
mini=100000;
nr=1;
back(1);
gr<<mini<<endl;
}
}