Cod sursa(job #3311313)

Utilizator contandrei3Andrei Mihai contandrei3 Data 21 septembrie 2025 11:18:11
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
//100p
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k,v[16005],i,sum;
int drum (int x)
{
    int k=0,sum=0;
    for (int j=1;j<=n;j++)
        {
            if (sum+v[j]>x)
                {
                    k++;
                    sum=0;
                }
            sum+=v[j];
        }
    if (sum!=0) k++;
    return k;
}
int cautbin (int st, int dr)
{
    int mij,val=0;
    while (st<=dr)
        {
            mij=st+(dr-st)/2;
            //cout<<mij<<" ";
            if (drum(mij)<=k)
                {
                    dr=mij-1;
                    val=mij;
                }
            if (drum(mij)>k) st=mij+1;
         }
    return val;
}
int main()
{
    fin>>n>>k;
    for (i=1; i<=n; i++)
        {
            fin>>v[i];
            sum+=v[i];
        }
    fout<<cautbin (*max_element(v+1,v+n+1),sum);
    //cout<<drum (7);
    return 0;
}