Pagini recente » Cod sursa (job #522919) | Cod sursa (job #593857) | Cod sursa (job #76668) | Cod sursa (job #2814821) | Cod sursa (job #80144)
Cod sursa(job #80144)
#include<stdio.h>
#define N 17000
int n,k,c,v[N],sum;
void read()
{
int i;
scanf("%d%d%d",&n,&k,&v[0]);
sum=v[0];
for(i=1;i<n;i++)
{
scanf("%d",&v[i]);
sum+=v[i];
}
}
int maxim(int v[N])
{
int i,max;
max=v[0];
for(i=1;i<n;i++)
if(v[i]>max)
max=v[i];
return max;
}
int intra(int c)
{
int i,s=0,nr=0;;
s=v[0];
for(i=1;i<n;i++)
{
if(s+v[i]>c)
{
nr++;
s=v[i];
}
else
s+=v[i];
}
if(s<=c)
{
nr++;
return nr;
}
return 0;
}
int search(int p,int u)
{
int m;
m=(p+u)/2;
while(p<u)
{
if(intra(m)>k)
p=m+1;
else
u=m;
m=(p+u)/2;
}
return m;
}
void solve()
{
int max;
max=maxim(v);
c=max;
c=search(max,sum);
/*for(i=max;i<=sum;i++)
if(intra(i))
{
c=i;
break;
}*/
printf("%d\n",c);
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
read();
solve();
return 0;
}