Cod sursa(job #1334788)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 4 februarie 2015 17:25:21
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;

ifstream fin ("secventa.in" );
ofstream fout("secventa.out");

long long n, k, i, p, u, s;
int v[5000002], d[5000002];
int maxim, st, dr;

int main(){
    fin >> n >> k;
    p = 1; u = 1;
    d[1] = 1;
    maxim = -200000;
    for(i = 1; i <= n; i ++)
        fin >> v[i];
    for(i = 2; i <= n; i ++){
        while(p <= u && v[i] < v[d[u]])
            u --;
        d[++u] = i;
        if(i - d[p] == k)
            p ++;
        if(i >= k){
            if(maxim < v[d[p]]){
                maxim = v[d[p]];
                st = i - k + 1;
                dr = i;
            }
        }
    }
    fout << st << " " << dr << " " << maxim;
    return 0;
}