Pagini recente » Cod sursa (job #1126663) | Cod sursa (job #1093479) | Cod sursa (job #2814851) | Cod sursa (job #2147658) | Cod sursa (job #2828448)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
const int NMAX=16005;
long long v[NMAX];
int main()
{
long long n,k,i,maxim=-1,sum=0,sol;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
maxim=max(maxim,v[i]);
sum=sum+v[i];
}
int st=maxim;
int dr=sum;
while(st<=dr)
{
int mij=(st+dr)/2;
int ss=0;
int kon=1;
for(i=1;i<=n;i++)
{
ss=ss+v[i];
if(ss>mij)
{
ss=v[i];
kon++;
}
}
if(kon>k)
st=mij+1;
else
{
sol=mij;
dr=mij-1;
}
}
fout <<sol<<"\n";
return 0;
}