Cod sursa(job #1724562)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 3 iulie 2016 15:20:09
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
#include<deque>
using namespace std;
deque<int> q;
int *v,n,k,maxim,imax;
int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    v=new int [n+5];
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
        while (!q.empty() && v[q.back()]>=v[i]) q.pop_back();
        q.push_back(i);
        while (!q.empty() && q.front()<=(i-k)) q.pop_front();
        if (i>=k)
        {
            if (v[q.front()]>maxim) maxim=v[q.front()],imax=q.front();
        }
    }
     int j1=imax;
    while (j1>1 && v[j1-1]>=maxim) j1--;
    int j2=imax;
    while (j2<n && v[j2+1]>=maxim) j2++;
    printf("%d %d ",j1,j2);
    printf("%d\n",maxim);


    return 0;
}