Cod sursa(job #3365825)

Utilizator mihaidavidgabrielDavid Mihai Gabriel mihaidavidgabriel Data 26 septembrie 2026 10:33:23
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("transport.in");
ofstream fout ("transport.out");

int n, k, i;
long long x, sum, mic;
vector<int> nr;

int main()
{
    fin >> n >> k ;
    long long st=0;
    for(i=1;i<=n;i++)
        {
            fin >> x ;
            nr.push_back(x);
            sum+=x;
            if(x>st)
                st=x;
        }
    long long dr=sum,mij;
    while(st<=dr)
        {
            mij=(st+dr)/2;
            int tr=1;
            long long s=0;
            for(i=0;i<n;i++)
                {
                    if(s+nr[i]<=mij)
                        s+=nr[i];
                    else
                        {
                            s=nr[i];
                            tr++;
                        }
                }
            if(tr>k)
                st=mij+1;
            else
                {
                    mic=mij;
                    dr=mij-1;
                }
        }
    fout << mic;
    return 0;
}