Cod sursa(job #565674)

Utilizator SadmannCornigeanu Calin Sadmann Data 28 martie 2011 09:31:52
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#define NMAX 500001
#define INF -(1<<17)
using namespace std;
int N,K;
ifstream in("secventa.in");
ofstream out("secventa.out");
int V[NMAX],myDeque[NMAX],back=0,front=1;

int main()
{
    in>>N>>K;
    int minim=INF;
    pair<int,int> pos;
    for(int i=1;i<=N;i++)
    {
        in>>V[i];
        while(front<=back && V[myDeque[back]]>=V[i])
            back--;
        myDeque[++back]=i;
        if(myDeque[front]==i-K)
            front++;
        if(minim<V[myDeque[front]] && i>=K)
        {
            minim=V[myDeque[front]];
            pos=make_pair(myDeque[front],i);
        }
    }

    out<<pos.first<<' '<<pos.second<<' '<<minim<<'\n';

    return 0;
}