Cod sursa(job #3342748)

Utilizator John_PorkJohn Wick John_Pork Data 25 februarie 2026 16:08:24
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int Variabila=1e9;
int nr[16005];
int k;
int n;
int okish(int c){
    int i=1, m=1, sum1=0;
    while(i<=n){
        if(nr[i]>c){
            m=Variabila;
            return m;
        }
        if(suma+nr[i]>c){
            m++;
            suma=v[i];
        }
        else
            suma+=v[i];
        i++;
    }
    return m;
}
int binar(int st, int dr){
    int med, last=-1, t;
    while (st<=dr){
        med=(st+dr)/2;
        t=okish(med);
        if(t<=k){
            last=med;
            dr=med-1;
        }
        else
            st=med+1;
    }
    return last;
}
int main(){
    int i;
    fin>>n>>k;
    int sum=0;
    for(i=1; i<=n; i++){
        fin>>v[i];
        sum+=v[i];
    }
    int rez=binar(1, sum);
    fout<<rez;
    return 0;
}