Pagini recente » Cod sursa (job #2726708) | Cod sursa (job #2770830) | Cod sursa (job #1110565) | Cod sursa (job #472840) | Cod sursa (job #1760453)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k;
int x[16005];
int s,suma,Max;
int st,dr,m,nr;
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++)
fin>>x[i], suma+=x[i], Max=max(Max,x[i]);
st=Max;
dr=suma;
while(dr>st)
{
nr=0; s=0;
m=(st+dr)/2;
for(int i=1; i<=n; i++)
if(x[i]+s<=m)
s+=x[i];
else
s=x[i], nr++;
if(nr<k) dr=m-1;
else st=m+1;
}
fout<<st;
return 0;
}