Cod sursa(job #1802309)

Utilizator MirceaTMircea Timpuriu MirceaT Data 10 noiembrie 2016 09:21:11
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<iostream>
using namespace std;
int main()
{
    int n,stare=0,k,i,v[16010],st,dr,mid,s=0,counter=1;
    cin>>n>>k;
    for(i=0;i<n;++i)
    {
        cin>>v[i];
    }
   st=1;
    dr=256000000;
   while(st<=dr)
   {

    mid=(st+dr)/2;
    for(i=0;i<n;++i)
    {
        s=s+v[i];
        if(s>mid)
        {
            counter++;
            s=v[i];
        }
    }
    if(counter>k)
        {
            st=mid+1;
            counter=1;
            s=0;
            stare=0;
        }
        else
        {
            dr=mid-1;
            counter=1;
            s=0;
            stare=1;
        }
   }
    if(stare==1) cout<<st;
    else cout<<dr;

}