Pagini recente » Cod sursa (job #3240478) | Cod sursa (job #697101) | Cod sursa (job #3234374) | Cod sursa (job #2524297) | Cod sursa (job #2177781)
#include <fstream>
#include <iostream>
using namespace std;
int v[16005],n,k;
int verif(int capac)
{ int l=1,s=0;
for(int i=1;i<=n;i++)
{ if(s+v[i]<=capac)
s+=v[i];
else
l++,s=v[i];
}
if(l>k)
{
return 1;
}
if(l==k)
return -1;
return 0;
}
int binar(int x,int y)
{
int st=x,dr=y,c,t;
while(st <= dr)
{
c=(st+dr)/ 2;
if(verif(c)==-1)
{
t=c;
dr=c-1;
}
else
if(verif(c)==1)
st=c+1;
else
dr=c-1;
}
return t;
}
int main()
{
ifstream cin("trtport.in");
ofstream cout("transport.out");
int valmin=-1,valma=16000;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]>valmin)
valmin=v[i];
}
int t=binar(valmin,valma);
cout<<t;
return 0;
}