Cod sursa(job #1337252)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 8 februarie 2015 19:47:23
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#define NMAX 500000
using namespace std;
int n, k, i, j, st, poz, dr, minim=-1<<30, v[NMAX+1], d[NMAX+1];
int main()
{
    ifstream cin("secventa.in");
    ofstream cout("secventa.out");
    cin>>n>>k;
    for(i=1; i<=n; i++)
        cin>>v[i];
    st=dr=1;
    d[1]=1;
    for(i=2; i<=n; i++)
    {
        while(st<=dr&&v[d[dr]]>=v[i])
            dr--;
        dr++;
        d[dr]=i;
        if(i-d[st]==k)
            st++;
        if(minim<v[d[st]]&&i>=k)
            minim=v[d[st]],poz1=d[st],poz2=d[dr];



    }
    cout<<poz1<<' '<<poz2<<' '<<minim;
    return 0;
}