Pagini recente » Cod sursa (job #3319826) | Cod sursa (job #3355212) | Cod sursa (job #2784075) | Cod sursa (job #162054) | Cod sursa (job #3345066)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
#define cin fin
#define cout fout
const int Nmax=2e4;
int v[Nmax];
int main()
{
int n,k;
cin>>n>>k;
int st=0,dr=0;
for(int i=1;i<=n;i++)
{
cin>>v[i];
dr+=v[i];
st=max(st,v[i]);
}
int ans=0;
while(st<=dr)
{
int m=(st+dr)/2;
int nr=0,cnt=0,idx=0;
for(int i=1;i<=n;i++)
{
nr+=v[i];
if(nr==m)
{
nr=0;
cnt++;
idx=i;
}
else if(nr>m)
{
nr=v[i];
cnt++;
if(i==n)
cnt++;
idx=i;
}
}
if(cnt>k)
{
st=m+1;
}
else
{
dr=m-1;
ans=m;
}
}
cout<<ans;
return 0;
}