Cod sursa(job #1873036)

Utilizator RaresEGaySopterean Adrian RaresEGay Data 8 februarie 2017 19:05:53
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#define maxn 500001
#define INF 0x3f3f3f3f

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");

int n, v[maxn], deq[maxn], k, x, maxim = -INF;
int st = 1, dr;

int main(){
    f >> n >> k;
    for(int i=1; i<=n; ++i) f >> v[i];

    for(int i=1; i<=n; ++i){
        while(st <= dr && v[i] <= v[deq[dr]]) --dr;
        deq[++dr] = i;
        if(deq[st] == i-k) st++;
        if(i >= k && v[deq[st]] > maxim) x = i, maxim = v[deq[st]];
    }
    g << x - k + 1 << ' ' << x << ' ' << maxim << '\n';
    }