Cod sursa(job #2910611)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 22 iunie 2022 18:18:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,st,dr,mid,v[16001];

bool verif(int c) {
    int t=1;
    int s=v[1];
    for (int i=2;i<=n;i++)
        if (s+v[i]>c) {
            s=v[i];
            t++;
        }
        else
            s+=v[i];
    return t<=k;
}

int main() {
    fin>>n>>k;
    st=dr=0;
    for (int i=1;i<=n;i++) {
        fin>>v[i];
        if (v[i]>st)
            st=v[i];
        dr+=v[i];
    }
    while (st<=dr) {
        mid=(st+dr)/2;
        if (!verif(mid))
            st=mid+1;
        else
            dr=mid-1;
    }
    fout<<st;
    return 0;
}