Pagini recente » Cod sursa (job #1848304) | Cod sursa (job #568717) | Cod sursa (job #2298070) | Cod sursa (job #36277) | Cod sursa (job #2187601)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,i,k,a[16004],transp,k1,cnt,mij,p,u,maxim,s;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
maxim=max(a[i],maxim);
s+=a[i];
}
p=maxim;
u=s;
while(p<=u)
{
mij=(p+u)/2;
k1=0;
cnt=1;
for(i=1;i<=n;i++)
{
if(a[i]+k1<=mij)
k1+=a[i];
else
{
cnt++;
k1=a[i];
}
}
if(cnt>k)
p=mij+1;
else
{
transp=mij;
u=mij-1;
}
}
fout<<transp;
return 0;
}