Cod sursa(job #2796855)

Utilizator LeonGSLeo Jechiu LeonGS Data 8 noiembrie 2021 21:32:55
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
int n,k,a[16005];

int howMany(int x) {
    int tr=1, s=0;
    for(int i=1; i<=n; i++){
        if(s+a[i]<=x){
            s+=a[i];
        }
        else{
            tr++;
            s=a[i];
        }
    }
    return tr;
}
int main(){
ifstream cin("transport.in");
ofstream cout("transport.out");
cin >> n >> k;
for(int i=1; i<=n; i++){
    cin >> a[i];
}
long long left=1, right=16000*16000,sol=0;
while(left<=right){
    long long mid = (left+right)/2;
    if(howMany(mid)<=k){
        sol=mid;
        right=mid-1;
    }
    else{
        left=mid+1;
    }
}
cout << sol;
return 0;
}