Cod sursa(job #3295488)

Utilizator Medeeeea28Medeea Medeea Medeeeea28 Data 6 mai 2025 10:00:55
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

fstream cin("transport.in");
ofstream cout("transport.out");

int main()
{
    int s[16001], gasit=0, n, k, i;
    cin>>n>>k;
    int vmin=-1;
    int vmax=0;
    for(int i=1; i<=n; i++)
    {
        cin>>s[i];
        if(s[i]>vmin)
            vmin=s[i];
        vmax=vmax+s[i];
    }


    int st=vmin, dr=vmax, mij, rasp;
    i=vmin;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        int c=0;
        int d=1;
        for(int j=1; j<=n; j++)
        {
            if(c+s[j]<=mij)
                c=c+s[j];
            else
            {
                d++;
                c=s[j];
            }
        }
        if(d<=k)
           {
               dr=mij-1;
               rasp=mij;
           }
        else
           {
               st=mij+1;
           }

    }

    cout<<rasp;
    return 0;
}