Pagini recente » Cod sursa (job #137578) | Cod sursa (job #1300180) | Cod sursa (job #2315787) | Cod sursa (job #998405) | Cod sursa (job #2778078)
#include <fstream>
#define N 16005
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,a[N];
int main()
{
int i,Max=-1;
fin>>n>>k;
for(i=1 ;i<=n; ++i)
{ fin>>a[i];
if(a[i]>Max) Max=a[i];
}
int st=Max,x,dr=N*N,sum=0,sol=-1;
while(st<=dr)
{
int mij=(st+dr)/2;
sum=0;
x=1;
for(i=1; i<=n; ++i)
if(sum+a[i]<=mij)
sum+=a[i];
else sum=a[i],x++;
if(x<=k) sol=mij,dr=mij-1;
else st=mij+1;
}
fout<<sol;
return 0;
}