Pagini recente » Cod sursa (job #478504) | Cod sursa (job #1119703) | Cod sursa (job #3156541) | Cod sursa (job #1756035) | Cod sursa (job #1401421)
#include<stdio.h>
#define N 17
int n,g,next[N],v[N],minCam,prev[N],first;
int back(int sCur,int cam,int pas){
int i=0;
if(pas){
int i=first;
while(i!=n+1){
int cop=next[i],pp=0,cop1=sCur;
if(i!=first){
next[prev[i]]=next[i];
prev[next[i]]=prev[i];
}
else
first=next[i];
sCur+=v[i];
if(sCur>g){
pp=1;
cam++;
sCur=v[i];
}
back(sCur,cam,pas-1);
if(i>first){
next[prev[i]]=i;
prev[next[i]]=i;
}
else
first=i;
sCur=cop1;
if(pp)
cam--;
i=next[i];
}
}
else{
if(cam<minCam)
minCam=cam;
}
}
int main(){
FILE *fin,*fout;
fin=fopen("zebughil.in","r");
fout=fopen("zebughil.out","w");
int t=3;
while(t){
fscanf(fin,"%d%d",&n,&g);
int i;
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
prev[i]=i-1;
next[i]=i+1;
}
first=1;
minCam=n;
back(0,0,n);
fprintf(fout,"%d\n",minCam+1);
t--;
}
return 0;
}