Cod sursa(job #1735244)

Utilizator robx12lnLinca Robert robx12ln Data 29 iulie 2016 12:43:05
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<deque>
#define INF 2000000000
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, k, v[500005], maxim, st, dr;
deque<int> d;
int main(){
    fin >> n >> k;
    for( int i = 1; i <= n; i++ ){
        fin >> v[i];
    }
    d.push_back(1);
    maxim = -INF;
    for( int i = 2; i <= n; i++ ){
        while( !d.empty() && v[d.back()] > v[i]  ){
            d.pop_back();
        }
        d.push_back(i);
        if( i - d.front() == k ){
            d.pop_front();
        }
        if( i >= k ){
            if( maxim < v[d.front()] ){
                maxim = v[d.front()];
                st = d.front();
                dr = st + k - 1;
            }
        }
    }
    fout << st << " " << dr << " " << maxim;
    return 0;
}