Cod sursa(job #1797195)

Utilizator Iulia14iulia slanina Iulia14 Data 4 noiembrie 2016 08:53:12
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int v[16001];
int ion[16001];
int main()
{
    int n,k,i,st=0,dr=0,m,t,s,o=0;
    cin>>n>>k;
    for (i=1;i<=n;i++)
    {
        cin>>v[i];
        if (v[i]>st)
            st=v[i];
        dr=dr+v[i];
    }
    while (st<=dr)
    {
        m=(st+dr)/2;
        t=1;
        s=0;
        for (i=1;i<=n;i++)
        {
            if (s+v[i]<=m)
                s=s+v[i];
            else
            {
                s=v[i];
                t++;
            }
        }
        if (t<=k)
        {
            dr=m-1;
            o=m;
        }
        else
        {
            st=m+1;
        }
    }
    cout<<o;
    return 0;
}