Pagini recente » Cod sursa (job #871513) | Cod sursa (job #381613) | Cod sursa (job #2210791) | Cod sursa (job #2300153) | Cod sursa (job #967106)
Cod sursa(job #967106)
#include <cstdio>
int v[16001];
int n,k;
bool tr(int c){
int s=0,t=0;
for ( int i=1;i<=n;++i ){
if ( v[i]>c )return 0;
if ( s+v[i]>=c ){s=0;++t;}
s+=v[i];
}
if ( t<=k )return 1;
return 0;
}
int main()
{
FILE*f=fopen("transport.in","r");
FILE*h=fopen("transport.out","w");
int s=0;
fscanf(f,"%d%d",&n,&k);
for ( int i=1;i<=n;++i ){
fscanf(f,"%d",&v[i]);
s+=v[i];
}
int p=0;
for ( int pas=1<<26;pas;pas/=2 ){
if ( p+pas>s )continue;
if ( !tr(p+pas) )p+=pas;
}
while ( !tr(p) )++p;
while ( tr(p) )--p;
fprintf(h,"%d",p+1);
return 0;
}