Pagini recente » Cod sursa (job #785092) | Cod sursa (job #2014683) | Cod sursa (job #2187675) | Cod sursa (job #2846965) | Cod sursa (job #2717745)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define ll long long
ifstream fin ("transport.in");
ofstream fout ("transport.out");
const int NMAX=16005;
ll v[NMAX];
int main()
{
ll n,k,i,j,maxim=-1,s=0,stot=0,spar=0,mij=0,sta=1,dre=1,kon=0,rasp,ltotal,traseucuren=0;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
if(maxim<v[i])
maxim=v[i];
}
/*for(i=1;i<=n;i++)
{
if(maxim<v[i])
maxim=v[i];
}*/
sta=maxim;
for(i=1;i<=n;i++)
stot+=v[i];
dre=stot;
while(sta<=dre)
{
mij=(sta+dre)/2;
spar=0;
kon=1;
for(i=1;i<=n;i++)
{
spar+=v[i];
if(spar>mij)
spar=v[i],kon++;
}
if(kon>k)
sta=mij+1;
if(kon<=k)
rasp=mij,dre=mij-1;
}
fout <<rasp<< endl;
return 0;
}