Pagini recente » Cod sursa (job #228736) | Cod sursa (job #2697230) | Monitorul de evaluare | Cod sursa (job #2046129) | Cod sursa (job #6069)
Cod sursa(job #6069)
#include <stdio.h>
int ms[20002];
int n,k;
int max;
int ok(int l)
{
int i;
int c=0,j=0;
for ( i=1; i<=n; i++ )
{
c+=ms[i];
if ( c > l ) {
j++;
c=ms[i];
}
}
if ( c!=0 ) j++;
if ( j <= k ) return 1;
return 0;
}
int main()
{
int i,j=0;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d", &n, &k);
for ( i=1; i<=n; i ++ ) {
scanf("%d", &ms[i]);
if (max < ms[i] ) max = ms[i];
}
for (i=1; i<=1000000000; i<<=1);
for (;i;i>>=1)
if ( !ok(j+i) ) j+=i;
printf("%d\n", j+1);
fclose(stdin);
fclose(stdout);
return 0;
}