Cod sursa(job #2269780)

Utilizator q1e123Solca Robert-Nicolae q1e123 Data 26 octombrie 2018 16:39:37
Problema Secventa Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>

#define  MAX 500000

using namespace std;
/*
ifstream INPUT_FILE("secventa.in");
ofstream OUTPUT_FILE("secventa.out");
*/

deque<int>d;
int n,k;
int bazaMaxima = INT_MIN, st, dr,elem[MAX];

int main() {
    /*ios::sync_with_stdio(false);
    INPUT_FILE.tie(0);
    OUTPUT_FILE.tie(0);*/
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);

    //INPUT_FILE >> n >> k;
    scanf("%d%d",&n,&k);
    for (int i = 1; i <= n; ++i) {
        //INPUT_FILE >> elem[i];
        scanf("%d",&elem[i]);
        while (!d.empty() && elem[i] < elem[d.back()]) d.pop_back();
        d.push_back(i);

        if (i-d.front()==k) d.pop_front();
        if (i>=k && elem[d.front()] > bazaMaxima) {
            bazaMaxima = elem[d.front()];
            st = i - k + 1;
            dr = i;
        }
    }
    //OUTPUT_FILE<<st<<" "<<dr<<" "<<bazaMaxima;
    printf("%d %d %d\n",st,dr,bazaMaxima);
    return 0;
}