Pagini recente » Cod sursa (job #553010) | Cod sursa (job #1225479) | Cod sursa (job #285286) | Cod sursa (job #1576317) | Cod sursa (job #2623242)
#include <iostream>
#include <fstream>
#include<math.h>
#include <stdlib.h>
using namespace std;
ifstream f ("pikachu.in");
ofstream g ("pikachu.out");
int n, k;
long long v[100002];
long long munti(long long h){
long long minim = 1e15, s = 0;
for(int i = 1; i <= n; ++i)
{
s += abs(v[i] - h);
if(i > k)
{
s -= abs(v[i-k] - h);
minim = min(minim, s);
}
}
return minim;
}
int main()
{
f>>n>>k;
long long maxim = 0, minim = 1e15;
for(int i = 1; i <= n; ++i)
{
f >> v[i];
maxim = max(maxim, v[i]);
minim = min(minim, v[i]);
}
long long st = minim, dr = maxim, m;
while(st <= dr)
{
m = (st+dr) / 2;
if(munti(m-1) > munti(m+1))
st = m+1;
else
dr = m-1;
}
g<<munti(st);
f.close();
g.close();
return 0;
}