Pagini recente » Istoria paginii utilizator/loghin_antonia | Cod sursa (job #1635401) | Cod sursa (job #227572) | Profil robertpoe | Cod sursa (job #474331)
Cod sursa(job #474331)
# include <cstdio>
const char FIN[] = "transport.in", FOU[] = "transport.out" ;
int V[16005] ;
int N, K ;
int check ( int T ) {
int F = 1;
for ( int i = 1, j = 0; i <= N; ++i ) {
if ( T < V[i] ) {
return 1 ;
} else {
if ( j + V[i] <= T ) {
j += V[i] ;
} else {
F++;
j = V[i] ;
}
}
}
if ( F > K ) {
return 1;
}
return 0;
}
int cautbin ( void ) {
int i , cnt ;
for (cnt = 1; cnt <= N; cnt <<= 1) ;
for ( i = 0 ; cnt ; cnt >>= 1 ) {
if ( check ( i + cnt ) ) {
i += cnt;
}
}
return ++i ;
}
int main() {
freopen ( FIN , "r" , stdin ) ;
freopen ( FOU , "w" , stdout ) ;
scanf ( "%d %d", &N , &K ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d" , V + i ) ;
}
printf ( "%d" , cautbin () ) ;
return 0;
}