Cod sursa(job #2338967)

Utilizator traiandobrinDobrin Traian traiandobrin Data 8 februarie 2019 09:36:51
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
using namespace std;
int v[16001];
int n,k;
ifstream cin("transport.in");
ofstream cout("transport.out");
bool verif(long long m)
{   int s=0,cnt=1;
    for(int i=1;i<=n;++i)
    {
        if(v[i]>m) return 0;
        else
        if(v[i]+s<=m) s+=v[i];
        else
        {
     cnt++;
     s=v[i];
     if(cnt>k)
     return 0;
        }
    } return 1;
}
int cb()
{
    long long msk,pos=0;
    for(msk=1<<30;msk>0;msk/=2)
    {
        if(verif(pos+msk)==0)
        pos+=msk;
    } pos++;
    return pos;
}
int main()
{
    int sum=0,sumx=-1,j,i;
    cin>>n>>k;
    for(i=1;i<=n;++i)
    {
        cin>>v[i];
    }
    cout<<cb();
    return 0;
}