Pagini recente » Cod sursa (job #1890873) | Cod sursa (job #1891160) | Cod sursa (job #1933560) | Cod sursa (job #2689428) | Cod sursa (job #2526190)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,v[16001],k;
bool verif(int c)
{
int s=0,cnt=0;
for(int i=1;i<=n;i++)
{
if(s+v[i]>c)
{
s=v[i];
++cnt;
}
else
{
s+=v[i];
}
}
if(s!=0)
++cnt;
if(cnt<=k)
return true;
return false;
}
long long cautbin(int n)
{
long long pos=0,step=1LL*1<<30;
for(;step>0;step/=2)
if(step+pos<1LL*1<<30&&verif(step+pos)==0)
pos+=step;
return pos+1;
}
int main()
{
in>>n>>k;
for(int i=1;i<=n;i++)
in>>v[i];
out<<cautbin(n);
return 0;
}