Pagini recente » Cod sursa (job #586284) | Cod sursa (job #357012) | Cod sursa (job #2767032) | Cod sursa (job #498691) | Cod sursa (job #2431223)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k;
short A[16010];
bool testIfOk(int a)
{
int b = a,i,f=0;
for(int j = 0; j<k; j++)
{
for(i = f; i<n && b>=0; i++)
{
b-=A[i];
}
if(i==n && b>=0)
return true;
f=--i;
b=a;
}
return false;
}
int searchBinar(int st,int dr)
{
int median;
while(st<=dr)
{
median =(st+dr)/2;
if(testIfOk(median))
dr = median-1;
else
st = median+1;
}
return dr+1;
}
int main()
{
int sum = 0;
fin>>n>>k;
for(int i = 0; i<n; i++)
fin>>A[i],sum+=A[i];
fout<<searchBinar(0,sum);
return 0;
}