Pagini recente » Cod sursa (job #462284) | Cod sursa (job #163871) | Cod sursa (job #1832549) | Cod sursa (job #1848748) | Cod sursa (job #271507)
Cod sursa(job #271507)
#include<stdio.h>
#define Inf 25
FILE*f=fopen("zebughil.in","r");
FILE*g=fopen("zebughil.out","w");
int st[32];
char viz[32];
int S;
int nr,nrmin,n;
int G, z[32];
int list[32];
inline void back(int k)
{
if(k==n+1)
{
if(nr < nrmin) nrmin = nr;
}
else if(nr<nrmin)
{
int i;
for(i=1;i<=n;++i)
if(viz[i]!='1')
{
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;
}