Cod sursa(job #1872462)

Utilizator RaresEGaySopterean Adrian RaresEGay Data 8 februarie 2017 11:48:42
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 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){
        if(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';
    }