Pagini recente » Cod sursa (job #3367730) | Cod sursa (job #3364676) | Cod sursa (job #3364861) | Cod sursa (job #3367726) | Cod sursa (job #3364860)
#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;
}