Cod sursa(job #3263096)

Utilizator tedicTheodor Ciobanu tedic Data 13 decembrie 2024 10:30:18
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16005];
int n,k;
bool verif(int x)
{
    int s=0,cnt=1;
    for(int i=1; i<=n; i++)
    {
        if(v[i]>x)
            return 0;
        s+=v[i];
        if(s>x)
            cnt++, s=v[i];
    }
    if(cnt<=k)
        return 1;
    return 0;
}
int cautbin()
{
    int st=1, dr=256000000,bun=-1;
    while(st<=dr)
    {
        int mid=(st+dr)/2;
        if(verif(mid))
            bun=mid, dr=mid-1;
        else
            st=mid+1;
    }
    return bun;
}
int main()
{

    cin>>n>>k;
    for(int i=1; i<=n; i++)
        cin>>v[i];
    cout<<cautbin();
    return 0;
}