Cod sursa(job #1740300)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 11 august 2016 13:40:01
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("secventa.in");
ofstream fout("secventa.out");

int v[550000],w[550000],n,k,i1,i2,i,mx,p1,p2;

int main()
{
    fin>>n>>k;
    p1=1;
    p2=0;
    for(i=1; i<=n; ++i)
        fin>>w[i];
    mx=-300000;
    for(i=1; i<=n; ++i)
    {
        if(p2<p1)
        {
            --p1;
            v[p1]=i;
        }
        else
        {
            if(i-v[p1]>=k)
                ++p1;
            while(w[i]<w[v[p2]] && p2>=p1)
                --p2;
            v[++p2]=i;
        }
        if(w[v[p1]]>mx && i>=k)
        {
            mx=w[v[p1]];
            i1=i-k+1;
            i2=i;
        }
    }
    fout<<i1<<' '<<i2<<' '<<mx;
}