Cod sursa(job #2117306)

Utilizator AndaionicaIonica Anda Maria Andaionica Data 28 ianuarie 2018 19:31:57
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;
ifstream f("vila2.in");
ofstream g("vila2.out");
int n,k,st1,dr1,st2,dr2,i,Max,a[100001],v1[100001],v2[100001];
int main()
{
    f>>n>>k;
    st1=1;dr1=0;
    st2=1;dr2=0;
    for(i=1;i<=n;i++){
        f>>a[i];
        while(st1<=dr1&&a[i]<=a[v1[dr1]])
            dr1--;
        dr1++;
        v1[dr1]=i;
        if(v1[st1]==i-k-1)
            st1++;
        while(st2<=dr2&&a[i]>=a[v2[dr2]])
            dr2--;
        dr2++;
        v2[dr2]=i;
        if(v2[st2]==i-k-1)
            st2++;
        Max=max(Max,a[v2[st2]]-a[v1[st1]]);
    }
    g<<Max;
    return 0;
}