Cod sursa(job #2266927)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 22 octombrie 2018 22:53:26
Problema Transport Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
int n,k,a[17000],l,r,m,poz,curr,ans,s,Min=17000;
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]<Min) Min=a[i];
    }
    l=1;
    r=260000000;
    while(l<=r)
    {
        m=(l+r)/2;
        curr=s=0;
        for(int i=1;i<=n;i++)
        {
           if(s+a[i]<=m) {
             s+=a[i];
             if(i==n) curr++;
           }
           else
           {
               s=a[i];
               curr++;
           }
        }
        if(curr<=k)
        {
            r=m-1;
            ans=m;
        }
        else l=m+1;
    }
    cout<<ans;
    return 0;

}