Pagini recente » Cod sursa (job #2917704) | Cod sursa (job #3124022) | Cod sursa (job #1959674) | Cod sursa (job #2977600) | Cod sursa (job #1508500)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int a[16005],n,k,i,vol,c,mid,l,r,s,m;
void cit()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
m=max(m,a[i]);
}
}
int check()
{
c=0;vol=0;
for(i=1;i<=n;i++)
{
if(vol+a[i]<=mid)
{
vol+=a[i];
}
else
{
c++;
vol=a[i];
}
}
if(c+1>k){return 0;}
else{return 1;}
}
int main()
{
cit();
l=m;r=16005*16005;
mid=(l+r)/2;
if(k==n){s=m;}
else{
while(l<r)
{
if(check()){r=mid;s=mid;}
else{l=mid+1;}
mid=(l+r)/2;
}}
fout<<s<<"\n";
}