Pagini recente » Cod sursa (job #2948679) | Cod sursa (job #2058345) | Cod sursa (job #1402175) | Cod sursa (job #824894) | Cod sursa (job #2634221)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int a[16003],k,n;
void Citire()
{
f>>n>>k;
for (int i=1; i<=n; i++)
f>>a[i];
}
int Div(int val)
{
int sec=0,t=1;
for (int i=1;i<=n;i++)
{
if(a[i]>val)
return 0;
sec=a[i]+sec;
if (sec>val)
{
t++;
sec=a[i];
}
}
if (t<=k)
return 1;
return 0;
}
int Cautare_binara()
{
int st,dr,c,poz;
st = 1;
dr = 256000000;
poz = 0;
while (st<=dr)
{
c=(st+dr)/2;
if (Div(c)==1)
{
poz=c;
dr=c-1;
}
else
st=c+1;
}
return poz;
}
int main()
{
int x;
Citire();
x=Cautare_binara();
g<<x<<"\n";
return 0;
}