Pagini recente » Istoria paginii planificare/sedinta_20070104 | Cod sursa (job #683592) | Cod sursa (job #3297772) | Cod sursa (job #1699627) | Cod sursa (job #2177784)
#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;
}
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;
}
return t;
}
int main()
{
ifstream cin("transport.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 u=binar(valmin,valma);
cout<<u;
return 0;
}