Pagini recente » Cod sursa (job #2032862) | Cod sursa (job #2903902) | Cod sursa (job #911101) | Cod sursa (job #1430341) | Cod sursa (job #786828)
Cod sursa(job #786828)
#include <iostream>
#include <fstream>
using namespace std;
long int n,k,max=-1,s,x[16000];
void cb();
int main ()
{
ifstream f("transport.in");
long int i;
f>>n;
f>>k;
for(i=1;i<=n;i++)
{
f>>x[i];
s+=x[i];
if(x[i]>max)
max=x[i];
}
cb();
return 0;
}
void cb()
{
long int st,dr,mij,sum,i,nr,sol;
st=max;
dr=s;
while (st<=dr)
{
mij=(st+dr)/2;
sum=0;
nr=1;
for (i=1;i<=n;i++)
{
sum+=x[i];
if(sum>mij)
{
sum=x[i];
nr++;
}
if(nr>k)
{
st=mij+1;
break;
}
}
if(nr<=k)
{
sol=mij;
dr=mij-1;
}
}
ofstream g("transport.out");
g<<sol;
}