Pagini recente » Cod sursa (job #411835) | Cod sursa (job #1851337) | Cod sursa (job #2697851) | Cod sursa (job #178432) | Cod sursa (job #2671796)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout("transport.out");
int n, k, x, st, dr=16000*16000;
int v[500005];
bool verificare(int q)
{
int nrdr=0, c=0;
bool ad=0;
for(int i=1; i<=n; i++)
{
if(c+v[i]>q)
{
nrdr++;
c=v[i];
//if(q==7) cout<<nrdr<<" ";
}
else
{
c+=v[i];
}
}
/*if(c<=q)
nrdr++;*/
if(nrdr<=k)
{
return 1;
}
return 0;
}
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
st=max(st, v[i]);
}
while(st<dr)
{
int mij=(st+dr)/2;
if(verificare(mij))
{
x=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
//cout<<verificare(7);
fout<<x;
return 0;
}