Cod sursa(job #3335314)

Utilizator mmateiMatei Barbu mmatei Data 22 ianuarie 2026 12:26:21
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int n,k,v[16001],cap,sum,cs;

int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++){
        fin>>v[i];
        sum+=v[i];
        if(v[i]>cap)cap=v[i];
    }
    int st=cap,dr=sum;
    while(st<=dr){
        int m=(st+dr)/2;
        int suma=0,nr=1;
        for(int i=1;i<=n;i++){
            if(suma+v[i]<=m){
                suma+=v[i];
            }else suma=v[i],nr++;
        }
        if(nr<=k){
            dr=m-1;
            cap=m;
        }else if(nr>k){
            st=m+1;
        }
    }
    fout<<cap;
    return 0;
}