Pagini recente » Cod sursa (job #2371360) | Cod sursa (job #2526199) | Cod sursa (job #1074274) | Cod sursa (job #1810292) | Cod sursa (job #2426017)
#include <fstream>
using namespace std;
int v[16001];
ifstream in ("transport.in");
ofstream out ("transport.out");
bool verif_(int rasp,int k,int n)
{
int zile=0,i=1,sum=0;
while (i<=n)
{
sum=0;
while (sum+v[i]<=rasp)
sum+=v[i],i++;
zile++;
}
if (zile<=k)
return 1;
return 0;
}
int main()
{
int n,k,sum=0,max1=0,mijl,st,dr,poz,i;
in>>n>>k;
for (i=1;i<=n;i++)
{
in>>v[i];
sum+=v[i];
max1=max(max1,v[i]);
}
st=max1;
dr=sum;
while (st<=dr)
{
mijl=(st+dr)/2;
if (verif_(mijl,k,n)==1)
{
poz=mijl;
dr=mijl-1;
}
else
st=mijl+1;
}
out<<poz;
return 0;
}