Pagini recente » Cod sursa (job #2733469) | Cod sursa (job #2431733) | Cod sursa (job #382630) | Cod sursa (job #2133350) | Cod sursa (job #2281925)
#include<fstream>
using namespace std;
long n,k,i,a[17000],st,dr,cmin,mij,s,l,mx,nrt;
int main()
{
ifstream fin("transport.in");
ofstream fout("transport.out");
fin>>n>>k;
for(i=1; i<=n; ++i)
{
fin>>a[i];
if(a[i]>mx)
mx=a[i];
s=s+a[i];
}
cmin=0; ///valabil pentru cazul ca nu ar fi posibil
st=mx;
dr=s;
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
nrt=1;
for(i=1; i<=n; ++i)
{
if(s+a[i]>mij)
{
nrt++;
s=a[i];
}
else s=s+a[i];
}
if(nrt<=k)
{
cmin=mij;
dr=mij-1;
}
else st=mij+1;
}
fout<<cmin;
return 0;
}