Cod sursa(job #2457820)

Utilizator anabatAna Batrineanu anabat Data 18 septembrie 2019 19:37:34
Problema Transport Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>

#define NMAX 16000
#define VALMAX 256000000

int v [ NMAX + 1 ] ;

  int nrtransp (int C,int n) {

    int i,S,k;
    S=k=0;
    for(i=0;i<n;i++){
      if(v[i]>C){
        k=VALMAX;
      }
       if(S+v[i]<=C){
         S=S+v[i];
       }
       else{
         k++;
         S=v[i];
       }

    }
    if(S>0&&S<C){
      k++;
    }

    return k ;
}


int main()
{

  FILE *fin,*fout;
  fin=fopen("transport.in","r");
  fout=fopen("transport.out","w");

    int C,n,k,i,st,dr,mij;
    mij=0;
    fscanf(fin,"%d%d",&n,&k);
    for(i=0;i<n;i++){
      fscanf(fin,"%d",&v[i]);
    }
    st=1;
    dr=VALMAX;
    ///printf("%d",nrtransp(7,n));
    while(st<dr){
      mij=(st+dr)/2;
      if(nrtransp(mij,n)<=k){
        dr=mij;
      }
      else{
        st=mij+1;
      }
    }
   fprintf(fout,"%d",st);

  fclose(fin);
  fclose(fout);

  return 0;
}