Cod sursa(job #3263626)

Utilizator vladm98Munteanu Vlad vladm98 Data 15 decembrie 2024 16:43:02
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16001];
int n,k;
int ok(int x)
{
    int s=0,cnt=1;
    for(int i=1;i<=n;i++)
    {
        if(v[i]>x)
            return 0;
        s=s+v[i];
        if(s>x){
            cnt++;
            s=v[i];
        }
    }
    if(cnt<=k)
        return 1;
    return 0;
}
int cautarebinara()
{
    int st=1,dr=20000000,acceptat=-1;
    while(st<=dr)
    {
        int mid=(st+dr)/2;
        if(ok(mid)){
            acceptat=mid;
            dr=mid-1;
        }
        else{
            st=mid+1;
        }
    }
    return acceptat;
}
int main()
{

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