Pagini recente » Cod sursa (job #2600804) | Cod sursa (job #2975868) | Cod sursa (job #1747733) | Cod sursa (job #1491574) | Cod sursa (job #1714055)
#include <cstdio>
#define NMax 16005
int v[NMax];
int n,k;
int is_good(int x)
{
int i,j,sum,aux;
aux = k;
i = 1;
while(aux && i <= n)
{
sum = 0;
while( sum < x )
{
sum += v[i];
i++;
}
if( sum > x ) i--;
aux--;
}
if( i > n ) return 1;
return 0;
}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int st,dr,mid,i,ans;
scanf("%d %d",&n,&k);
for( i = 1; i <= n; ++i ) scanf("%d",&v[i]);
for( st = 1, dr = NMax * NMax; st <= dr; )
{
mid = (st+dr)/2;
if( is_good(mid) ) { ans = mid; dr = mid - 1; }
else st = mid + 1;
}
printf("%d\n",ans);
return 0;
}