Cod sursa(job #2623242)

Utilizator Mari_BarbuBarbu Mariana Mari_Barbu Data 2 iunie 2020 19:57:35
Problema Patrate 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#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;
}