Cod sursa(job #2398357)

Utilizator Alexandru2006Mihailescu Alexandru Alexandru2006 Data 5 aprilie 2019 13:11:52
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

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

long long v[16002],n,k,i,st,dr,t,mij ;
int verif(int c)
{
    int s,ok,tr ;
    ok=1 ;
    s=0 ;
    tr=0 ;
    for (i=1;i<=n;i++)
    {
        if (v[i]>c) ok=0 ;
        else if (s+v[i]<=c) s=s+v[i] ;
        else
        {
            tr++ ;
            s=v[i] ;
        }
    }
    if (s>0) tr++ ;
    if (tr>k) ok=0 ;
    return ok;
}
int main()
{
    fin >> n >> k ;
    for (i=1;i<=n;i++) fin >> v[i] ;
    t=-1 ;
    st=1 ;
    dr=256000000 ;
    while (st<dr)
    {
        mij=(st+dr)/2 ;
        if (verif(mij))
        {
            t=mij ;
            dr=mij;
        }
        else st=mij+1 ;
    }
    fout << t ;
    return 0;
}