Pagini recente » Cod sursa (job #249758) | Cod sursa (job #1638364) | Cod sursa (job #2773152) | Cod sursa (job #2219606) | Cod sursa (job #505643)
Cod sursa(job #505643)
#include<cstdio>
const int N = 1<<14;
int v[N] , n , k , max = -1 ;
void read()
{
freopen ( "transport.in" , "r" , stdin );
freopen ( "transport.out" , "w" , stdout );
scanf ( "%d%d" , &n , &k );
for (int i=1 ; i<=n ; ++i )
{
scanf ( "%d" , &v[i] );
//if (v[i]>max) v[i] = max;
}
}
bool ok(int c)
{
int nr = 0 , i , cap ;
for ( i=1 ; i<=n; )
{
cap = c;
if(v[i]>c)
return false;
while ( i<=n && cap>=v[i] )
{
cap-=v[i];
++i;
}
++nr;
}
return nr<=k;
}
int cautbin()
{
int i , pas = 1<<14;
for (i=0 ; pas!=0 ; pas>>=1 )
if (!ok(i+pas))
i+=pas;
return i+1;
}
int main()
{
read();
printf( "%d\n" , cautbin() );
return 0;
}