Cod sursa(job #2038109)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 13 octombrie 2017 10:53:32
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdlib.h>
#include <stdio.h>
#include <deque>

using namespace std;

#define MAXN 500000
#define INF 30001

int v[MAXN];
deque <int> deq;

int main()
{
    int n, k, i, poz, bmax;
    FILE *fi, *fo;
    fi = fopen("secventa.in", "r");
    fo = fopen("secventa.out", "w");
    fscanf(fi, "%d%d", &n, &k);
    for(i=0; i<n; i++)
        fscanf(fi, "%d", &v[i]);
    bmax=-INF;
    for(i=0; i<n; i++) {
        while(deq.empty()!=1 && v[i]<v[deq.back()])
            deq.pop_back();
        deq.push_back(i);
        if(i>=k-1)
            while(v[deq.back()]>bmax && deq.back()<=n-k) {
                bmax=v[deq.back()];
                poz=deq.back();
            }
    }
    fprintf(fo, "%d %d %d", poz+1, poz+k, bmax);
    fclose(fi);
    fclose(fo);
    return 0;
}