Cod sursa(job #2563805)

Utilizator Rares31100Popa Rares Rares31100 Data 1 martie 2020 14:42:51
Problema Secventa Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define Inf 30001

using namespace std;

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

int n,k;
short int a[500001];
int coada[500001],last=1,vf;
int stS,drS,maxS=-Inf;

int main()
{
    in>>n>>k;

    for(int i=1;i<=k-1;i++)
    {
        in>>a[i];

        while(last<=vf && a[ coada[vf] ]>=a[i])
            vf--;

        coada[++vf]=i;
    }

    for(int i=k;i<=n;i++)
    {
        in>>a[i];

        if(coada[last]<=i-k)
            last++;

        while(last<=vf && a[ coada[vf] ]>=a[i])
            vf--;

        coada[++vf]=i;

        if(a[ coada[last] ]>maxS)
        {
            maxS=a[ coada[last] ];
            stS=i-k+1;
            drS=i;
        }
    }

    out<<stS<<' '<<drS<<' '<<maxS;

    return 0;
}