Pagini recente » Cod sursa (job #969405) | Cod sursa (job #1760828) | Cod sursa (job #2618924) | Cod sursa (job #1096995) | Cod sursa (job #1864360)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[100005];
bool check(int mid) {
int interm=0,nrsecv=1;
for(int i=1;i<=n;++i)
{
interm+=v[i];
if(interm>mid) interm=v[i],nrsecv++;
}
if(nrsecv>k)
return 0;
return 1;
}
/*bool functie (int i)
{
int c = 1, total = 0;
for (int j = 0; j < n; ++j)
{
if (total + s[j] > i)
{
++c;
total = 0;
}
total+=s[j];
}
if (c > k)
return 0;
return 1;
}*/
int main() {
int i,st=0,dr,mid,last;
fin>>n>>k;
for(i=1;i<=n;++i)
{
fin>>v[i];
st=max(st,v[i]);
}
dr=16000*16000;
while(st<=dr)
{
mid=(st+dr)/2;
if(check(mid))
{
dr=mid-1;
last=mid;
}
else
st=mid+1;
}
fout<<last;
return 0;
}