Pagini recente » Cod sursa (job #747188) | Cod sursa (job #2607778) | Cod sursa (job #2870148) | Cod sursa (job #1605629) | Cod sursa (job #2358777)
#include<bits/stdc++.h>
#define NMAX 16001
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,i;
int a[NMAX];
bool ok(int c)
{
int k0=k,cc=c;
for(i=1;i<=n;i++)
{
if(a[i]>c)
return false;
if(a[i]<=cc)
cc=a[i];
else
{
k0--;
if(k0<=0)
return false;
cc=c-a[i];
}
}
return true;
}
int cautare_bin()
{
int mij=0,st=1,dr=NMAX*NMAX,mini=-1;
while(st<=dr)
{
mij=(dr-st)/2+st;
if(ok(mij))
{
mini=mij;
dr=mij-1;
}
else
st=mij+1;
}
return mini;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
g<<cautare_bin();
return 0;
}