Pagini recente » Cod sursa (job #3322515) | Cod sursa (job #3327835) | Cod sursa (job #1378650) | Cod sursa (job #2547096) | Cod sursa (job #3311312)
//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 dr)
{
int st=1, 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 (sum);
//cout<<drum (7);
return 0;
}