Cod sursa(job #2978664)

Utilizator NectuConstantinescu Petru-Nectarie Nectu Data 13 februarie 2023 23:45:39
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int v[16001];
int main()
{
    int n,k,i,cmin=0,cmax=0,sol=16000;
    cin >> n >> k;
    for (i=1;i<=n;i++) {
        cin >> v[i];
        if (v[i]>cmin)
            cmin=v[i];
        cmax=cmax+v[i];
    }
    while(cmin<=cmax)
    {
        int cmid=(cmin+cmax)/2,kc=1,cc=0;
        for (i=1;i<=n;i++)
            if (cc+v[i]<=cmid)
                cc+=v[i];
            else {
                kc++;
                cc=v[i];
            }
        if (kc<=k) {
            sol=cmid;
            cmax=cmid-1;
        }
            else
                cmin=cmid+1;
    }
    cout << sol;
    return 0;
}