Pagini recente » Cod sursa (job #2933431) | Cod sursa (job #274580) | Cod sursa (job #738091) | Cod sursa (job #403854) | Cod sursa (job #2854034)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
#define ll long long
int n,k,sum;
int v[16001];
bool verif(int c)
{
int cnt=1,aux=0;
for(int i=1;i<=n;i++)
{
if(v[i]>c)
return 0;
if(aux+v[i]>c)
{
cnt++;
aux=0;
}
aux+=v[i];
}
if(cnt<=k)
return 1;
else
return 0;
}
int cautare_binara()
{
int st,dr,mij;
st=1;
dr=sum;
while(st<=dr)
{
mij=(st+dr)/2;
if(verif(mij)==1)
{
if(mij==1 || verif(mij-1)==0)
{
return mij;
}
else
dr=mij-1;
}
else
st=mij+1;
}
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
sum+=v[i];
}
fout<<cautare_binara();
}