Pagini recente » Cod sursa (job #455041) | Cod sursa (job #878949) | Cod sursa (job #735890) | Cod sursa (job #1414937) | Cod sursa (job #2076806)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int N=16001;
int n;
int v[N];
int caut_bin( int i, int x)
{
int pas, r=i;
pas=1<<13;
while(pas!=0)
{
if(r+pas<=n&&v[r+pas]-v[i-1]<=x)
r+=pas;
pas/=2;
}
return r;
}
int main()
{
ifstream fin("transport.in") ;
ofstream fout("transport.out");
int k;
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
v[i]+=v[i-1];
}
int s=(v[n]/n)+1,j,d=16000;
while(d>k)
{
d=0;
for(int i=1; i<=n; i++)
{
if(v[i+1]-v[i]>s)
{
s++;
i--;
}
else
{
j=caut_bin(i,s);
i=j;
d++;
}
}
s++;
}
fout<<s-1;
return 0;
}