Pagini recente » Cod sursa (job #2667073) | Cod sursa (job #3250788) | Cod sursa (job #327833) | Cod sursa (job #1405156) | Cod sursa (job #2472727)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[100000],n,y;
bool solve(int x)
{
int k=1,s=0;
for(int i=0;i<n;i++)
{
s+=v[i];
if(s>x)
{
k++;
s=v[i];
}
}
return k<=y;
}
int bin(int st,int dr)
{
int mij,last=dr;
bool a;
while(st<=dr)
{
mij=(st+dr)/2;
a=solve(mij);
if(a==0)
st=mij+1;
else
last=mij,dr=mij-1;
}
return last;
}
int main()
{
int minm=16001;
cin>>n>>y;
for(int i=0;i<n;i++)
{
cin>>v[i];
if(minm>v[i])
minm=v[i];
}
cout<<bin(minm, 1000000000);
return 0;
}