Pagini recente » Cod sursa (job #613514) | Cod sursa (job #1361931) | Cod sursa (job #1635224) | Cod sursa (job #2314995) | Cod sursa (job #1247167)
#include<fstream>
#define nx 16007
using namespace std;
int n,k,i,x,s,d,m,sol,v[nx*nx];
ifstream fin("transport.in");
ofstream fout("transport.out");
int verificare()
{
int mid=0,p=k,x=0;
while(p && x<v[n])
{
int s=1,d=n;
x=v[mid]+m;
p--,mid=0;
while(s<=d)
{
mid=(s+d)/2;
if(v[mid]<=x)s=mid+1;
else d=mid-1;
}
if(v[mid]>x)mid--;
}
if(x<v[n])return 0;
return 1;
}
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>x;
if(x>s)s=x;
v[i]=v[i-1]+x;
}
d=v[n];
while(s<=d)
{
m=(s+d)/2;
if(verificare())
{
sol=m;
d=m-1;
}
else s=m+1;
}
fout<<sol;
return 0;
}