Pagini recente » Cod sursa (job #1362258) | Cod sursa (job #880867) | Cod sursa (job #2930156) | Cod sursa (job #2356614) | Cod sursa (job #1183956)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int n, i, p, u, mij, l, v[16005];
int fct(int x)
{
int i, a, s;
a=0;
s=0;
for(i=1;i<=n;i++)
{
if(v[i]>x) return 0;
s+=v[i];
if(s>x)
{
a++;
s=v[i];
}
}
if(a+1>l) return 0;
return 1;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d%d", &n, &l);
for(i=1;i<=n;i++)
{
scanf("%d", &v[i]);
u+=v[i];
}
p=1;
while(p<=u)
{
mij=p+(u-p)/2;
if(fct(mij)==0) p=mij+1;
else
{
if(fct(mij-1)==0)
{
printf("%d", mij);
return 0;
}
else u=mij-1;
}
}
return 0;
}