Pagini recente » Cod sursa (job #2015788) | Cod sursa (job #2015771) | Cod sursa (job #444736) | Cod sursa (job #460799) | Cod sursa (job #624973)
Cod sursa(job #624973)
#include<cstdio>
const int MAX_N = 16000 ;
int n,k;
int v[MAX_N];
bool verif(int x)
{
int suma=0,nr=1;
for(int i=1;i<=n;++i)
{
if(v[i]>x) return false;
if(suma+v[i]<x)
suma+=v[i];
else
{
if(suma+v[i]==x)
{
nr++;
suma=0;
}
else
{
nr++;
suma=v[i];
}
}
}
return nr<=k ;
}
int main()
{
int sol;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
int dr=0;
for(int i=1;i<=n;++i)
{
scanf("%d",&v[i]);
dr+=v[i];
}
int st=1 ;
while(st<=dr)
{
int m = (st+dr) /2 ;
if( verif(m) )
{
sol=m;
dr=m-1;
}
else
st=m+1;
}
printf("%d\n",sol);
return 0;
}