Pagini recente » Cod sursa (job #2313046) | Cod sursa (job #17611) | Cod sursa (job #930376) | Cod sursa (job #2431683) | Cod sursa (job #2615397)
#include <fstream>
using namespace std;
int v[20000];
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k;
cin>>n>>k;
long long max=0;
for(int i=0;i<n;i++)
{
cin>>v[i];
if(v[i]>max)
{
max=v[i];
}
}
long long int st=1,dr=16000*n+1,mij,pozmin=256000004;
while(dr>=st)
{
mij=(dr+st)/2;
long long sum=0,trans=0;
for(int i=0;i<n;i++)
{
sum+=v[i];
if(sum>mij)
{
trans++;
sum=v[i];
}
}
if(sum!=0)
{
trans++;
}
if(trans<=k)
{
if(mij<pozmin)
{
pozmin=mij;
}
dr=mij-1;
}
else
{
st=mij+1;
}
}
cout<<pozmin<<endl;
return 0;
}