Pagini recente » Cod sursa (job #748235) | Cod sursa (job #1414173) | Cod sursa (job #2221999) | Cod sursa (job #2281407) | Cod sursa (job #580674)
Cod sursa(job #580674)
#include<fstream>
using namespace std;
int n,k,s=0,t=0;
int v[16010],a[16010];
void citire()
{
int i;
ifstream in("transport.in");
in>>n>>k;
for (i=1;i<=n;i++)
{
in>>v[i];
s+=v[i];
a[i]=s;
t=max(t,v[i]);
}
}
int nrtrans(int x)
{
int i=1,nr=0;
while (i<=n)
{
int st;
st=0;
for (st;st+v[i]<=x&&i<=n;i++)
st+=v[i];
nr++;
if (nr>k)
return k+1;
}
return nr;
}
int main()
{
int st,dr,mij,i;
citire();
st=t;
dr=s;
mij=st+(dr-st)/2;
while (st<dr)
{
if (nrtrans(mij)<=k)
dr=mij;
else
st=mij+1;
i=dr;
mij=st+(dr-st)/2;
}
ofstream out("transport.out");
out<<i;
}