Cod sursa(job #2369514)

Utilizator BogauuuBogdan Ivancu Bogauuu Data 6 martie 2019 00:08:21
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int a[16002],n;

int verif(int x)
{
    int c=x-a[1];
    int nr=1;
    for (int i=2;i<=n;i++)
    {
        if (c>=a[i]) c-=a[i];
        else
        {
            nr++;
            c=x-a[i];
        }
    }
    return nr;
}

int k,i,s,st,dr,mid,maxim;

int main()
{
    fin >> n >> k;
    for (i=1;i<=n;i++)
    {
        fin >> a[i];
        s+=a[i];
        if (a[i]>maxim) maxim=a[i];
    }
    st=maxim;
    dr=s;
    while (st<=dr)
    {
        mid=(st+dr)/2;
        if (verif(mid)>k) st=mid+1;
        else dr=mid-1;
    }
    fout << st;

    return 0;
}