Pagini recente » Cod sursa (job #1309500) | Cod sursa (job #553908) | Cod sursa (job #2049226) | Cod sursa (job #2568042) | Cod sursa (job #2120406)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int rez,sum,nr,Max,vt,n,a[16005],k, i;
void cautbin()
{
int st = Max;
int dr = vt;
int mj = 0;
while( st <= dr )
{
mj = (st+dr)/2;
k = 1;
sum=0;
for( i = 1; i <= n; i++)
{
if( sum+a[i] <= mj )
sum+=a[i];
else
{
k++;
sum = a[i];
}
}
if(nr < k )
st = mj+1;
else
{
dr = mj-1;
rez = mj;
}
}
}
int main()
{
f >> n >> nr;
for( i = 1 ; i <= n ; i ++ )
{
f >> a[i];
vt+= a[i];
Max = max( a[i], Max);
}
cautbin();
g << rez;
return 0;
}