Pagini recente » Cod sursa (job #1605372) | Cod sursa (job #2496006) | Cod sursa (job #1113439) | Cod sursa (job #2687263) | Cod sursa (job #1524585)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int NMAX=16005;
int n,k,a[NMAX];
int sol;
int main()
{
int i,j,st,mij,dr,sum,cnt,mx;
fin>>n>>k;mx=0;
for (i=1;i<=n;i++) {fin>>a[i];mx=max(mx,a[i]);}
st=mx;dr=1000000000;
while (st<=dr)
{
mij=(st+dr)>>1;
cnt=sum=0;
for (i=1;i<=n;i++)
{
if ((sum+a[i])<=mij) sum+=a[i];
else {cnt++;sum=a[i];}
}
cnt++;//ultimul transport
if (cnt<=k)
{
sol=mij;
dr=mij-1;
}
else st=mij+1;
}
fout<<sol<<"\n";
return 0;
}