Cod sursa(job #1995323)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 27 iunie 2017 16:38:07
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#define dim  500001
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,a[dim],minimax,pozi,pozj,st,dr,y,dq[dim];
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
        minimax=-30001;
        st=1;
        dr=0;
       for(int i=1;i<=n;i++)
       {
               while(a[i]<a[dq[dr]]&&st<=dr)
                   dr--;
               dr++;
               dq[dr]=i;
           if(i-dq[st]==k)
            st++;
           if(i>=k)
           {
               if(minimax<a[dq[st]])
               {
                   minimax=a[dq[st]];
                   pozi=i-k+1;}

            }
       }
       fout<<pozi<<"  "<<pozi+k-1<<"  "<<minimax;

    return 0;
}