Pagini recente » Cod sursa (job #519716) | Cod sursa (job #2655955) | oni_cl_11-12 | Cod sursa (job #403903) | Cod sursa (job #3174505)
#include <fstream>
using namespace std;
int v[16001];
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
int N,K,st,dr,maxi=-1,m,i,s=0,S,k1,sol;
cin>>N>>K;
for(i=1;i<=N;i++)
{
cin>>v[i];
if(v[i]>maxi)
{
maxi=v[i];
}
s=s+v[i];
}
st=maxi;
dr=s;
while(st<=dr)
{
m=(st+dr)/2;
S=0;
i=1;
k1=0;
while(i<=N)
{
S=S+v[i];
if(S>m)
{
S=v[i];
k1++;
}
i++;
}
if(S<m && S!=v[i]) k1++;
if(k1>K) st=m+1;
else{
sol=m;
dr=m-1;
}
}
cout<<sol;
}