Cod sursa(job #1000896)

Utilizator robertstrecheStreche Robert robertstreche Data 23 septembrie 2013 21:58:05
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");


int v[16001],i,n,ss,s,k,ma,nr,st,m,dr;

int main()
{
   f>>n>>k;
   for (i=1;i<=n;i++)
    {
        f>>v[i];
        s+=v[i];
        if (v[i]>ma)
         ma=v[i];
    }

    st=ma;
    dr=s;
    while (st<=dr)
     {
         m=(st+dr)/2;
         ss=0;
         nr=1;
         for (i=1;i<=n;i++)
          if (ss+v[i]<=m)
           ss+=v[i];
          else
           {
               nr++;
               ss=0;
               i--;
           }
           if (nr<=k)
            dr=m-1;
           else
            st=m+1;
     }
     if (k*k==n)
      g<<dr;
      else
       g<<st;
    f.close();
    g.close();

}