Cod sursa(job #1568681)

Utilizator ipus1Stefan Enescu ipus1 Data 14 ianuarie 2016 17:03:56
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#include<deque>
using namespace std;
deque<int> d;
int v[500001];
int main ()
{freopen ("secventa.in","r",stdin);
freopen ("secventa.out","w",stdout);
int n,k,i,x,maxx,in,sf;
scanf("%d%d",&n,&k);
maxx=-1000000;
scanf("%d",&v[1]);
d.push_back(1);
for(i=2;i<=n;i++)
    {scanf("%d",&v[i]);
    while(d.empty()==0&&v[i]<v[d.back()])
        d.pop_back();
    d.push_back(i);
    if(i-d.front()+1==k)
        {if(v[d.front()]>maxx)
            {maxx=v[d.front()];
            in=d.front();
            sf=d.front()+k-1;
            }
        d.pop_front();
        }
    }
printf("%d %d %d",in,sf,maxx);
return 0;
}