Cod sursa(job #2398726)

Utilizator isa_tudor_andreiAndrei Tudor isa_tudor_andrei Data 5 aprilie 2019 23:21:52
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#define NMAX 500000

using namespace std;

int dqmin[NMAX + 1];
int v[NMAX + 1];

int main() {
    ifstream cin("secventa.in");
    ofstream cout("secventa.out");
    int n, k, i, st, dr, first;
    cin>>n>>k;
    st = 0;
    dr = -1;
    int ans = -30001;
    for( i = 1; i <= n; i ++ ) {
      cin>>v[i];
      if( st >= 0 && dqmin[st] == i - k )
        st ++;
      while( dr >= st && v[dqmin[dr]] > v[i] )
        dr --;
      dqmin[++dr] = i;
      if( ans < v[dqmin[st]] )
        ans = v[dqmin[st]], first = dqmin[st];
    }
    cout<<first<<" "<<first+k-1<<" "<<ans;
    return 0;
}