Cod sursa(job #1568709)

Utilizator ipus1Stefan Enescu ipus1 Data 14 ianuarie 2016 17:29:08
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<cstdio>
#include<deque>
using namespace std;
deque<int> d;
short 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("%hd",&v[i]);
    while(!d.empty()&&v[i]<v[d.back()])
        d.pop_back();
    d.push_back(i);
    if(i>=k&&v[d.front()]>maxx)
        {maxx=v[d.front()];
        sf=i;
        }
    if(i-d.front()+1==k)
        d.pop_front();
    }
printf("%d %d %d",sf-k+1,sf,maxx);
return 0;
}