Pagini recente » Monitorul de evaluare | Atasamentele paginii 1770673153154766 | Istoria paginii runda/moisil_11-12_sim/clasament | Cod sursa (job #2685439) | Cod sursa (job #2072268)
#include <iostream>
#include <cstdio>
using namespace std;
int v[16001];
int main()
{
int n,k,st,dr,i,mij,s,t,elem;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
cin>>n>>k;
st=0;
dr=0;
for(i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]>st)st=v[i];
dr=dr+v[i];
}
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
t=1;
for(i=1;i<=n;i++)
{
if(s+v[i]>mij)
{
t++;
s=v[i];
}
else
s+=v[i];
}
if(t>k)
st=mij+1;
else
{
dr=mij-1;
elem=mij;
}
}
cout<<elem;
return 0;
}