Cod sursa(job #1734386)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 27 iulie 2016 11:25:37
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<bits/stdc++.h>
using namespace std;
int n,k,v[16005],suma,ls,ld,mij,ture;
int main()
{
    freopen("transport.in","r",stdin);
    freopen("transport.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
        suma+=v[i];
    }
    ls=1;
    ld=suma;
    while (ls<=ld)
    {
        mij=(ls+ld)/2;
        ture=0;
        int i=1,cap=0;
        for(int i=1;i<=n;i++)
        {
            cap+=v[i];
            if (cap>mij)
            {
                ture++;
                cap=v[i];
            }
        }
        ture++;
        if (ture<=k)
        {
            ld=mij-1;
        }
            else ls=mij+1;
    }
    printf("%d\n",ls);
    return 0;
}