Pagini recente » Cod sursa (job #2968705) | Cod sursa (job #743168) | Cod sursa (job #1432569) | Cod sursa (job #1508719) | Cod sursa (job #1350607)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int main()
{
int n,k,s=0,v[16000],max=0,i,bn,mij,sf,m,cont,r;
in>>n>>k;
for(i=1;i<=n;i++)
{
in >>v[i];
s=s+v[i];
if(max<v[i])
max=v[i];
}
bn=max;
sf=s;
while(bn<=sf)
{
mij=(bn+sf)/2;
m=0;
cont=1;
for(i=1;i<=n;i++)
{
m=m+v[i];
if(m>mij)
{
m=v[i];
cont++;
}
}
if(cont<=k)
{sf=mij-1;
r=mij;}
else
{bn=mij+1;
r=mij+1;}
}
out<<r;
return 0;
}