Cod sursa(job #1401421)

Utilizator sddddgjdZloteanu Anastasia sddddgjd Data 25 martie 2015 20:59:17
Problema Zebughil Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 1.33 kb
#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;
}