Pagini recente » Cod sursa (job #71621) | Cod sursa (job #2881453) | Cod sursa (job #3241446) | Cod sursa (job #384224) | Cod sursa (job #2472728)
#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 maxm=0;
cin>>n>>y;
for(int i=0;i<n;i++)
{
cin>>v[i];
if(maxm<v[i])
maxm=v[i];
}
cout<<bin(maxm, 1000000000);
return 0;
}