Cod sursa(job #2446743)

Utilizator patrickdanDan patrick patrickdan Data 10 august 2019 17:07:21
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>

using namespace std;
int v[500001];
int d[500001];
int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    int n,k,i,st,dr,max1,poz;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++){
        scanf("%d",&v[i]);
        if(v[i]<=0)
            v[i]=-v[i];
    }
    st=1;dr=0;
    max1=-2000000005;poz=0;
    for(i=1;i<=n;i++)
    {
        if(d[st]==i-k)
            st++;
        while(st<=dr && v[d[dr]]>=v[i])
          dr--;
        d[++dr]=i;
        if(i>=k && v[d[st]]>max1)
        {
            max1=v[d[st]];
            poz=i;
        }
    }
    printf("%d %d %d",poz-k+1,poz,max1);
    return 0;
}