Pagini recente » Cod sursa (job #3157354) | Cod sursa (job #3193436) | Cod sursa (job #1125971) | Cod sursa (job #541445) | Cod sursa (job #1429639)
#include <iostream>
#include <fstream>
#define Nmax 16001
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int volum[Nmax],n,k,l=-1,r;
void Read()
{
fin>>n>>k;
int i;
for(i=1;i<=n;i++)
{ fin>>volum[i];
r+=volum[i];
l=max(l,volum[i]);
}
}
int transport(int val)
{
int i,nr=1,s=0;
for(i=1;i<=n;i++)
{
if(s+volum[i]<=val)
s+=volum[i];
else
{
nr++;
s=volum[i];
}
}
return nr;
}
int Binary_Search()
{
int mid,sol=0;
while(l<=r)
{
mid=(l+r)/2;
if(transport(mid)<=k)
r=mid-1;
else
l=mid+1;
}
return l;
}
int main()
{
Read();
fout<<Binary_Search();
return 0;
}