Cod sursa(job #1614429)

Utilizator raluca1234Tudor Raluca raluca1234 Data 25 februarie 2016 22:27:48
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <deque>
using namespace std;

const int MAX=-int(2e9);
deque< pair<int, int> > d;

int main(){
    int n, k, i, v, bmax, pmax, umax;
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    scanf("%d%d", &n, &k);
    bmax=MAX;
    for (i=1; i<=n; i++){
        scanf("%d", &v);
        while(!d.empty() && v<=d.back().first)
            d.pop_back();
        d.push_back(make_pair(v, i));
        if (d.front().second+k<=i)
            d.pop_front();
        if (i>=k && d.front().first>bmax){
            bmax=d.front().first;
            pmax=i-k+1;
            umax=i;
        }
    }
    printf("%d %d %d", pmax, umax, bmax);
    return 0;
}