Pagini recente » Cod sursa (job #2687070) | Cod sursa (job #2355649) | Cod sursa (job #2040458) | Cod sursa (job #1258690) | Cod sursa (job #271465)
Cod sursa(job #271465)
#include<stdio.h>
#define Inf 25
FILE*f=fopen("zebughil.in","r");
FILE*g=fopen("zebughil.out","w");
int st[20];
int viz[20];
int S;
int nr,nrmin,n;
int G, z[20];
inline void back(int k)
{
if(k==n+1)
{
if(nr < nrmin) nrmin = nr;
}
else
{
int i;
for(i=1;i<=n;++i)
if(!viz[i])
{
st[k]=i;
viz[i]=1;
int x=S;
if(z[i] + S > G) { nr++; x=S; S=z[i]; }
else S+=z[i];
back(k+1);
if(z[i] + x > G) { nr--; S=x; }
else S-=z[i];
viz[i]=0;
}
}
}
int main()
{
int t=3;
int i;
while(t--)
{
fscanf(f,"%d %d",&n,&G);
for(i=1;i<=n;++i) fscanf(f,"%d",&z[i]);
nrmin=Inf;
nr=1; S=0;
back(1);
fprintf(g,"%d\n",nrmin);
}
return 0;
}