Cod sursa(job #2054149)

Utilizator heeiyyoosarateanu armand heeiyyoo Data 1 noiembrie 2017 19:05:29
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;
int v[100000],d[50000],x[50000];
int main()
{
    ifstream f("vila2.in");
    ofstream o("vila2.out");
    int n,k,i,stmax,stmin,drmax,drmin,rez = -1;
    f>>n>>k;

    stmax=stmin=0;
    drmax=drmin=-1;

    k++;


    for(i=0; i<n; i++)
    {
        f>>v[i];
        if(stmin<=drmin&&d[stmin]==i-k)
        {
            stmin++;

        }
        while(stmin<=drmin&&v[i]<=v[d[drmin]])
        {
            drmin--;
        }
        d[++drmin]=i;

        if(stmax<=drmax&&x[stmax]==i-k)
        {
            stmax++;
        }
        while(stmax<=drmax&&v[i]>=v[x[drmax]])
            drmax--;

        x[++drmax]=i;

        if(i>=k-1)
        {
            rez=max (rez,v[x[stmax]]-v[d[stmin]]);
        }
    }
    o<<rez;



}