Pagini recente » Cod sursa (job #2107750) | preONI 2008, Runda Finala, Clasa a 9-a | Cod sursa (job #686152) | Cod sursa (job #223969) | Cod sursa (job #1524581)
#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;
fin>>n>>k;
for (i=1;i<=n;i++) fin>>a[i];
st=1;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;
}