Cod sursa(job #2034968)

Utilizator alexandruilieAlex Ilie alexandruilie Data 8 octombrie 2017 18:38:03
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,i,mxc,v[16001],m,suma,sum,mn,s,d,nr;
int main()
{
   f>>n>>k;
   for(i=1;i<=n;i++) {f>>v[i];suma+=v[i];if(v[i]>mxc) mxc=v[i]; }
   s=mxc;d=suma;mn=256000000;
   while(s<=d)
   {
       m=(s+d)/2;
       sum=0;nr=0;
       for(i=1;i<=n&&nr<=k;i++)
        if(sum+v[i]<=m) sum+=v[i];
        else {nr++;sum=v[i];}
        nr++;
        if(nr<=k) {d=m-1;if(m<mn)mn=m;}
        else s=m+1;
   }
   g<<mn;
    return 0;
}