Pagini recente » Cod sursa (job #2777353) | Cod sursa (job #473068) | Cod sursa (job #1125579) | Cod sursa (job #3038424) | Cod sursa (job #2493379)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int v[16002];
int main()
{
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n, k, i, aux, aux2, max1, p, u, mij, cp;
bool ok;
fin>>n>>k;
for(i=1; i<=n; i++)
{
fin>>v[i];
v[i] = v[i] + v[i-1];
}
v[n+1]= v[n] + 16001;
aux=v[n]/k;
aux2=0;
max1=0;
for(i=1; i<=k; i++)
{
p=1;
u=n;
ok=0;
while(p<=u && ok==0)
{
mij=(p+u)/2;
if(v[mij]<=aux && v[mij+1] > aux) ok=1;
else if(v[mij] > aux) u=mij-1;
else if(v[mij+1] <=aux) p=mij+1;
}
if(abs(v[mij]- aux) < abs(v[mij+1]-aux) ) cp=mij;
else cp=mij+1;
if(v[cp] - v[aux2] > max1) max1=v[cp] - v[aux2];
aux= aux + v[n]/ k;
aux2=cp;
}
fout<<max1;
}