Cod sursa(job #3364860)

Utilizator RobertIon013Ion Robert Andrei RobertIon013 Data 12 septembrie 2026 15:57:25
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
bool verifica(long long mij,const vector<long long>& v,int N,long long K)
{
    long long sal=0;
    long long nr=1;
    for(int i=0;i<N;i++)
    {
        if(sal+v[i]<=mij)
        {
            sal+=v[i];
        }
        else
        {
            nr++;
            sal=v[i];
        }
    }
    return nr<=K;
}
int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    long long N,K;
    fin>>N>>K;
    vector<long long> v(N);
    long long st=0;
    long long dr=0;
    long long rez;
    for(int i=0;i<N;i++)
    {
        fin>>v[i];
        st=max(st,v[i]);
        dr+=v[i];
    }
    while(st<=dr)
    {
        long long mij=st+(dr-st)/2;
        if(verifica(mij,v,N,K))
        {
            rez=mij;
            dr=mij-1;
        }
        else
        {
            st=mij+1;
        }
    }
    fout<<rez<<'\n';

    return 0;
}