Cod sursa(job #3281794)

Utilizator Mate_3.14_9.8_infoRaducanu Mario-Ionut Mate_3.14_9.8_info Data 3 martie 2025 17:27:26
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,v[18000];
bool verif(int c){
    int nrt=1,cont=v[1];
    for(int i=2;i<=n;i++){
        if(cont+v[i]<=c)
            cont+=v[i];
        else{
            nrt++;
            cont=v[i];
        }
    }
    if(nrt<=k)
        return 1;
    else
        return 0;
}
int main()
{
    cin>>n>>k;
    int st=-1000000000,dr=0;
    for(int i=1;i<=n;i++){
        cin>>v[i];
        if(v[i]>st)
            st=v[i];
        dr+=v[i];
    }
    int mid,sol;
    while(st<=dr){
        mid=(st+dr)/2;
        if(verif(mid))
            sol=mid,dr=mid-1;
        else
            st=mid+1;
    }
    cout<<sol;
    return 0;
}