Pagini recente » Cod sursa (job #2028387) | Cod sursa (job #2258964) | Cod sursa (job #2958217) | Cod sursa (job #897933) | Cod sursa (job #1337657)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
ofstream g("transport.out");
int n,k,s,a[16001],li,ls,m,kk,maxim,i,ok;
int main()
{
freopen("transport.in","r",stdin);
scanf("%d""%d",&n,&k);
scanf("%d",&a[1]);
maxim=a[1];
s=a[1];
for(i=2;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>maxim) maxim=a[i];
s=s+a[i];
}
li=maxim;
ls=s;
while(li<=ls)
{
m=(li+ls)/2;
s=0;
kk=0;
for(i=1;i<=n;i++)
{
if(s+a[i]<=m)
{
s=s+a[i];
}
else
{
kk++;
s=a[i];
}
}
if(kk<=k)
{
ok=1;
ls=m-1;
}
else
{
ok=0;
li=m+1;
}
}
if(ok) g<<li+1;
else g<<li;
return 0;
}