Pagini recente » Cod sursa (job #2923133) | Cod sursa (job #2614178) | Cod sursa (job #2711565) | Cod sursa (job #1108311) | Cod sursa (job #1553788)
# include <fstream>
# include <algorithm>
using namespace std;
ifstream cin ( "transport.in" );
ofstream cout ( "transport.out" );
int n, a[16005], k, mx;
int prog ( int q )
{
int i, t, p;
i = t = p = 0;
while ( i < n )
{
if ( p + a[i] <= q )
{
p = p + a[i];
}
else
{
p = a[i];
t ++;
}
i ++;
}
if ( p != 0 )
t ++;
return t;
}
int bsearch ( int st , int dr )
{
int mid, s;
while ( st <= dr )
{
mid = (st+dr)/2;
s = prog ( mid );
if ( s == k )
{
if ( prog ( mid - 1 ) > k )
return mid;
else
dr = mid - 1;
}
if ( s < k )
dr = mid - 1;
if ( s > k )
st = mid + 1;
}
}
int main ()
{
int i;
cin >> n >> k;
for ( i = 0 ; i < n ; i ++ )
{
cin >> a[i];
if ( a[i] > mx )
mx = a[i];
}
cout << bsearch ( mx, n * 16000 );
return 0;
}