Cod sursa(job #2526190)

Utilizator rares_ciocieaRares Andrei Ciociea rares_ciociea Data 18 ianuarie 2020 12:22:21
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,v[16001],k;
bool verif(int c)
{
    int s=0,cnt=0;
    for(int i=1;i<=n;i++)
    {
        if(s+v[i]>c)
        {
            s=v[i];
            ++cnt;
        }
        else
        {
            s+=v[i];
        }
    }
    if(s!=0)
        ++cnt;
    if(cnt<=k)
        return true;
    return false;
}
long long cautbin(int n)
{
    long long pos=0,step=1LL*1<<30;
    for(;step>0;step/=2)
        if(step+pos<1LL*1<<30&&verif(step+pos)==0)
            pos+=step;
    return pos+1;
}
int main()
{
    in>>n>>k;
    for(int i=1;i<=n;i++)
        in>>v[i];
    out<<cautbin(n);
    return 0;
}