Cod sursa(job #1711438)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 31 mai 2016 11:22:44
Problema Transport Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#include <stdlib.h>
int salt[16009];
int k,n;
int poate(int c){
  int i,trans=1,s=0;
  for(i=0;i<n;i++){
    if(s+salt[i]>c){
      trans++;
      s=salt[i];

    }
    else
      s+=salt[i];
    if(trans>k)
      return 0;
  }
  return 1;
}
int main()
{
  int pas=1<<14,j;
  FILE*fin,*fout;
  fin=fopen("transport.in","r");
  fscanf(fin,"%d%d",&n,&k);
  for(j=0;j<n;j++)
    fscanf(fin,"%d",&salt[j]);
  j=0;
  while(pas!=0){
    if(poate(j+pas)==0)
      j+=pas;
    pas/=2;
  }
  j++;
  fout=fopen("transport.out","w");
  fprintf(fout,"%d",j);
  fclose(fout);
  return 0;
}