Pagini recente » Cod sursa (job #1932525) | Cod sursa (job #2599993) | Cod sursa (job #2395168) | Cod sursa (job #2633366) | Cod sursa (job #1993197)
#include <fstream>
#include <iostream>
using namespace std;
int saltele[16011];
long long int st=1,d=256000000,mij,n,k,last=-1;
int main()
{
ifstream fin ("transport.in");
ofstream fout ("transport.out");
fin>>n>>k;
for (int i=1;i<=n;++i)
{
fin>>saltele[i];
if (st<saltele[i])
{
st=saltele[i];
}
}
while (st<=d)
{
mij=(st+d)/2;
//cerr<<mij<<"\n";
int s=0,nr=0;
for (int i=1;i<=n;i++)
{
if (s+saltele[i]<=mij)
{
s+=saltele[i];
}
else
{
s=saltele[i];
nr++;
}
}
//if (s==saltele[n])
//{
nr++;
//}
if (nr>k)
{
st=mij+1;
}
else
{
d=mij-1;
last=mij;
}
}
fout<<last;
}