Cod sursa(job #364392)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 15 noiembrie 2009 16:21:57
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
int n,a[16001],d,s,k;
int nr_trans(int C)
{int i=1,contor=0,s=0;
    while(i<=n)
     { if(a[i]>C) return 0;
     if(s+a[i]<=C) {s+=a[i];i++;}
      else {contor++;s=0;}         
               }
     return contor;}
int main()
{freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d",&n,&k);
int d=1,s,v=0,aux;
for(int i=1;i<=n;i++) {scanf("%d",&a[i]);d+=a[i];}
s=a[1];
int lg,i,l,cont=0;
for(lg=1;lg<=d;lg<<=1);
for(i=d,l=lg;l;l>>=1)
 {if(i-l>0 )
  {printf("%d ",i);
  
    aux=v;v=nr_trans(i-l);
            if(v!=0) i=i-l;
            
            }                
        }
printf("%d",i+1);

    
    return 0;}