Cod sursa(job #1222033)

Utilizator PlatenitesVoicu Cristian Platenites Data 21 august 2014 23:45:36
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<fstream>

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");
int v[500001],deq[500001],fr,b,n,k,maxi,dr,st;
int main ()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
        f>>v[i];
    fr=1;b=0;
    for(int i=1;i<=n;i++)
    {
        while(fr<=b && v[i]<=v[deq[b]])
            b--;
        deq[++b]=i;
        if(deq[fr]==i-k)
            fr++;
        if(i>=k && v[deq[fr]]>maxi)
        {
            maxi=v[deq[fr]];st=deq[fr];dr=deq[fr]+k-1;
        }
    }
    g<<st<<" "<<dr<<" "<<maxi;
}