Pagini recente » Cod sursa (job #2881460) | Cod sursa (job #1285548) | Cod sursa (job #2531041) | Cod sursa (job #1225794) | Cod sursa (job #2472013)
#include <bits/stdc++.h>
using namespace std;
ifstream ci("transport.in");
ofstream cou("transport.out");
int n,k,st=1,dr=16001,mij,v[16001];
int verif (int cap)
{
int nrtrans=1,cap1=0,i;
for(i=1; i<=n; i++)
{
cap1+=v[i];
if(cap1>cap)
{
cap1=v[i];
nrtrans++;
}
}
return nrtrans;
}
int cautarebin()
{
int p,rez=0;
while(st<=dr)
{
mij=(st+dr)/2;
p=verif(mij);
if(p<k )
{
dr=mij-1;
}
else
{
if(p>k)
{
st=mij+1;
}else{
if(p==k){
rez=mij;
dr=mij-1;
}
}
}
}
return rez;
}
int main()
{
int i,x,mx=0;
ci>>n>>k;
for(i=1; i<=n; i++)
{
ci>>v[i];
mx=max(v[i],mx);
}
st=mx;
x=cautarebin();
cou<<x;
}