Pagini recente » Cod sursa (job #228735) | Cod sursa (job #1761670) | Cod sursa (job #1664809) | Cod sursa (job #1809656) | Cod sursa (job #1618704)
#include <fstream>
using namespace std;
int a[16001],n,k;
int c_Max=0,c_Min=0;
int st,dr,mij;
ifstream f("transport.in");
ofstream g("transport.out");
int nr_drum(int v)
{int s,p,i;
p=1;
s=0;
for(i=0;i<n;i++)
{
if(s+a[i]>v)
{
s=a[i];
p++;
}
else
{
s+=a[i];
}
}
return p;
}
int main()
{
int i;
f>>n>>k;
for(i=0;i<n;i++)
{
f>>a[i];
c_Max+=a[i];
if(c_Min<a[i])
{
c_Min=a[i];
}
}
st=c_Min;
dr=c_Max;
while(st<=dr)
{
mij=(st+dr)/2;
if(nr_drum(mij)<=k)
{
dr=mij-1;
}
else
{
st=mij+1;
}
}
g<<st;
f.close();
g.close();
return 0;
}