Cod sursa(job #3342136)

Utilizator Sebastian_Codricisebi codrici Sebastian_Codrici Data 23 februarie 2026 09:12:15
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
const int INF=1e9;
int v[16005];
int k;
int n;
int ok(int c){
    int i=1, op=1, sum=0;
    while(i<=n){
        if(v[i]>c){
            op=INF;
            return op;
        }
        if(sum+v[i]>c){
            op++;
            sum=v[i];
        }
        else
            sum=sum+v[i];
        i++;
    }
    return op;
}
int BSL(int st, int dr){
    int med, last=-1, t;
    while (st<=dr){
        med=(st+dr)/2;
        t=ok(med);
        cout<<med<<" "<<t<<"\n";
        if(t<=k){
            last=med;
            dr=med-1;
        }
        else
            st=med+1;
    }
    return last;
}
int main(){
    cin>>n>>k;
    int s=0;
    for(int i=1; i<=n; i++){
        cin>>v[i];
        s=s+v[i];
    }
    int rasp=BSL(1, s);
    cout<<rasp;
    return 0;
}