Pagini recente » Cod sursa (job #2544641) | Cod sursa (job #2117512) | Cod sursa (job #1853094) | Cod sursa (job #2503351) | Cod sursa (job #2615171)
#include <bits/stdc++.h>
using namespace std;
ifstream ci("transport.in");
ofstream cou("transport.out");
int st=1,dr=16005*16005,sol=1;
int v[17000];
int n,k,mx;
void citire()
{
ci>>n>>k;
for(int i=1; i<=n; i++)
{
mx=max(mx,v[i]);
ci>>v[i];
}
}
int Ok(int mr)
{
int s=0,cn=1,i;
for(i=1; i<=n; i++)
{
if(s+v[i]>mr)
{
cn++;
s=v[i];
}else{
s+=v[i];
}
//cout<<k<<" "<<cn<<" "<<s<<"\n";
}
return cn;
}
void rez()
{
int mij,sol1=mx,sol=mx;
st=mx;
while(st<=dr)
{
mij=(st+dr)/2;
if(Ok(mij)<=k){
dr=mij-1;
sol1=mij;
}else{
st=mij+1;
sol=mij;
}
}
cou<<sol1;
}
int main()
{
citire();
rez();
return 0;
}