Pagini recente » Cod sursa (job #3269804) | Cod sursa (job #926466) | Cod sursa (job #2856716) | Cod sursa (job #644914) | Cod sursa (job #3311313)
//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;
}