Cod sursa(job #2046191)

Utilizator sabinantonSabin Anton sabinanton Data 23 octombrie 2017 15:40:14
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>

using namespace std;

const int N = 5000001;

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

int n,m,i,j,v[N],k,d[N],st,dr,mx=-300000,a,b;


int main()
{
    fin>>n>>k;
    st=0;
    dr=-1;
    for(i=0; i<n; i++)
    {
        fin>>v[i];
        if(st<=dr && d[st] == i-k)
            st++;
        while(st<=dr && v[i]<=v[d[dr]])
        {
            dr--;
        }
        d[++dr] = i;
        if(i>=k-1&&v[d[st]] > mx)
        {
            mx=v[d[st]];
            a = i - k + 2;
            b = i + 1;
        }
    }
    fout<<a<<" "<<b<<" "<<mx;
    return 0;
}