Pagini recente » Cod sursa (job #1763051) | Cod sursa (job #2238750) | Cod sursa (job #148325) | Cod sursa (job #2193135) | Cod sursa (job #3208388)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001];
bool verif(long long smax,int k,int n)
{
long long int sum=0;
int t=0;
for(int i=0;i<n;i++)
{
if(sum+v[i]<=smax)
{
sum+=v[i];
}
else
{
t++;
sum=v[i];
}
}
t++;
if(t<=k) return true;
return false;
}
int main()
{
int n,k;
long long s=0,ans;
fin>>n>>k;
for(int i=0;i<n;i++)
{
fin>>v[i];
s+=v[i];
}
int st=1,dr=s,mid;
while(st<dr)
{
mid=(st+dr)/2;
if(verif(mid,k,n)==true)
{
ans=mid;
dr=mid;
}
else
{
st=mid+1;
}
}
fout<<ans;
return 0;
}