Cod sursa(job #1711643)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 31 mai 2016 20:45:59
Problema Transport Scor 50
Compilator c Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>
int salt[16009];
int k,n;
int poate(int c){
  int i,s=0,ck=k;
  for(i=0;i<n;i++){
    if(salt[i]>c)
      return 0;
    if(s+salt[i]>c){
      ck--;
      s=0;
    }
    s+=salt[i];
    if(ck==0)
      return 0;
  }
  if(i==n && ck>0)
    return 1;
  else
    return 0;
}
int main()
{
  int pas=1<<13,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;
}