Cod sursa(job #1441217)

Utilizator SwagginInMyJaysaaaaaaaaaaaas SwagginInMyJays Data 23 mai 2015 22:20:08
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <deque>
#include <cstdio>

using namespace std;

const int dmax = 500003;

deque < int > D;

int a[dmax];


int main(){
    freopen ("secventa.in", "r", stdin);
    freopen ("secventa.out", "w", stdout);
    int N, K, start, end, worst = -dmax;
    scanf ("%d%d", &N, &K);
    for (int i = 1; i <= N; i++)
        scanf ("%hd", &a[i]);
    for (int i = 1; i <= N; i++){
            while ( !D.empty() && a[i] <= a[D.back()]) D.pop_back();
            D.push_back(i);
            if (D.front() == i - K   ) D.pop_front();
            if (i >= K){
                    if (a[D.front()] > worst) worst = a[D.front()], start = i - K + 1 , end = i;;
            }
    }
    printf ("%d %d %d", start, end, worst);
    return 0;
}