Pagini recente » Cod sursa (job #3142498) | Cod sursa (job #851602) | Cod sursa (job #2256797) | Cod sursa (job #2986230) | Cod sursa (job #465581)
Cod sursa(job #465581)
#include<fstream>
using namespace std;
int v[1<<14],n,k;
ifstream in("transport.in");
ofstream out("transport.out");
int bsearch(int x)
{
int i,step=1<<14;
for (i=0;step;step>>=1)
if (i+step<=n && v[i+step]<=x)
i+=step;
return i;
}
bool ok(int x)
{
int i,j;
for (i=0,j=1;j<=k && i<=n;j++)
i=bsearch(v[i]+x);
return i==n;
}
int bs()
{
int i,step=1<<28;
for (i=0;step;step>>=1)
if (!ok(i+step))
i+=step;
return i+1;
}
int main()
{
in>>n>>k;
for (int i=1;i<=n;i++)
{
in>>v[i];
v[i]+=v[i-1];
}
out<<bs()<<"\n";
return 0;
}