Pagini recente » Cod sursa (job #1566537) | Cod sursa (job #2952178) | Cod sursa (job #2443468) | Cod sursa (job #1065778) | Cod sursa (job #2079597)
#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=pas>>1;
}
return r;
}
int main()
{
ifstream fin("transport.in") ;
ofstream fout("transport.out");
int k,maxim=0;
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
if(maxim<v[i]) maxim=v[i];
v[i]+=v[i-1];
}
int s=(v[n]/k)+1,d=0;
if(s<maxim)
s=maxim;
for(int i=1; i<=n; i++)
{
i=caut_bin(i,s);
d++;
if(d>k)
{
i=0;
s++;
d=0;
}
}
fout<<s;
return 0;
}