Cod sursa(job #3349696)

Utilizator titel_stefanTitel Stefan Dragos titel_stefan Data 1 aprilie 2026 17:54:00
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb

#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16001];
int main()
{
    int max,n,k,i,nr,c,st,dr,mij,sol;
    cin>>n>>k;
    c=0;
    max=0;
    for(i=1;i<=n;i++)
    {
        cin>>nr;
        v[i]=nr;
        if(max<nr)
        {
            max=nr;
        }
        dr=dr+v[i];
    }
    st=max;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        int nrt=1;
        int 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)
        {
         sol=mij;
         dr=mij-1;
        }
        else
        {
            st=mij+1;
        }
    }
    cout<<sol;
    return 0;
}