Cod sursa(job #2323521)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 19 ianuarie 2019 11:56:50
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream in("vila2.in");
ofstream out("vila2.out");

int v[100001],dqmin[100001],dqmax[100001],d,n,k;
int main()
{
    in>>n>>k;
    k++;
    int stmin=0,stmax=0,drmin=-1,drmax=-1;
    for(int i=0;i<n;i++){
        in>>v[i];
        if(stmin<=drmin && dqmin[stmin]==i-k){
            stmin++;
        }
        while(stmin<=drmin && v[i]<=v[dqmin[drmin]])
            drmin--;
        dqmin[++drmin]=i;

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

        if(i>=k-1)
            d=max(d,v[dqmax[stmax]]-v[dqmin[stmin]]);
    }
    out<<d;
    return 0;
}