Cod sursa(job #2067165)

Utilizator lilipopliliana arici lilipop Data 15 noiembrie 2017 22:53:33
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;
int n, li, ls, m, s, sol, a[16010], i, Max, nr, k;
int main()
{

 ifstream f("transport.in");
 ofstream g("transport.out");
 f>>n>>k;
 for(i=1;i<=n;i++)
{ f>>a[i]; if(a[i]>Max) Max=a[i]; s+=a[i]; }
  li=Max; ls=s; m=(li+ls)/2;
  while(li<=ls)
  { s=0; nr=0;
  for(i=1;i<=n;i++)
    { s+=a[i];
      if(s>m && i!=n) {nr++; s=a[i];}
           else
            if(i==n) nr++; }
  if(s-m>0) nr++;
  if(nr<=k)
        { sol=m;ls=m-1; } else
          li=m+1;
  m=(li+ls)/2; }
    g<<sol; return 0;
    f.close();
    g.close();
}