Cod sursa(job #3182597)

Utilizator Dumiboidumitrache rares Dumiboi Data 9 decembrie 2023 10:55:21
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
int v[16001];
int main()
{
    int n,k,sol,st,dr,maxim=0,i,s=0,mij,nrt;
    cin>>n>>k;
    for(i=1;i<=n;i++)
    {
        cin>>v[i];
        if(v[i]>maxim)
            maxim=v[i];
        s=s+v[i];
    }
    st=maxim;
    dr=s;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        nrt=1;
        s=0;
        for(i=1;i<=n;i++)
            if(s+v[i]<=mij)
                s=s+v[i];
            else
            {
                nrt++;
                s=v[i];
            }
            if(nrt>k)
                st=mij+1;
            else
            {
                sol=mij;
                dr=mij-1;
            }
    }
    cout<<sol;
    return 0;
}