Cod sursa(job #2166640)

Utilizator Alex18maiAlex Enache Alex18mai Data 13 martie 2018 18:05:47
Problema Zombie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

ifstream cin ("zombie.in");
ofstream cout ("zombie.out");

int v[1000100];
int minn[1000100];

int main() {

    int d , n , k;
    cin>>d>>n>>k;

    int MIN = -1;
    int pnt = 0;
    v[0] = -1e9;

    for (int i=1; i<=n; i++){
        cin>>v[i];

        int old = pnt;

        while (v[pnt] < v[i] - d){
            pnt++;
        }
        if (v[pnt] >= v[i] - d){
            pnt--;
        }
        MIN++;
        for (int j=old; j<=pnt; j++){
            MIN = min(MIN , minn[j] + pnt - j);
        }
        minn[i] = MIN;
        minn[i] += min(i-pnt , k);
        //cout<<i<<" "<<MIN<<" "<<pnt<<" "<<k<<" "<<minn[i]<<'\n';
    }

    cout<<minn[n];

    return 0;
}