Cod sursa(job #3256126)

Utilizator cosmin_90Drignei Cosmin-Cristian cosmin_90 Data 13 noiembrie 2024 16:16:00
Problema Transport Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k,cap,v_max,sum,st,dr,nr_trns,x;
int main()
{
    fin>>n>>k;
    int slt[n+1];
    for(int i=1;i<=n;i++){
        fin>>slt[i];
        sum=sum+slt[i];
        v_max=max(v_max,slt[i]);
    }
    st=v_max;
    dr=sum;
    sum=0;
    cap=(st+dr)/2;
    while(st<=dr){
        x=0;
        nr_trns=0;
        cap=(st+dr)/2;
        for(int i=1;i<=n;i++){
            sum=sum+slt[i];
            if(sum+slt[i]>cap){
                sum=0;
                nr_trns++;
            }
        }
        nr_trns++;
        if(nr_trns<=k){
            dr=(st+dr)/2-1;
        }else if(nr_trns>k){
            st=(st+dr)/2+1;
        }
    }
    fout<<cap;
    return 0;
}