Cod sursa(job #1209523)

Utilizator clau_rClaudia clau_r Data 17 iulie 2014 22:36:31
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<iostream>
#include<fstream>
#include<deque>
#include<utility>
#include<algorithm>
#define NMAX 500010
using namespace std;
 
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<pair<int, int> > d;
 
int main(){
    int i;
    int a, n, k;
    fin>>n>>k;
     
    int f, fi;
    fi = 1;
    fin>>a;
    d.push_back( make_pair(a,0) );
    for(i = 1; i< k; i++){
        fin>>a;
        pair<int, int> p;
        p  = make_pair(a,i);
        while (!d.empty() && a <= d.back().first) {
        	d.pop_back();
        }
        d.push_back(p);
    }
    
    int bM = d.front().first;
    int bidx = 0;
    for(;i<n; i++){
         
        fin>>a;
        while(!d.empty() && a <= d.back().first){
            d.pop_back();
        }
        
        d.push_back( make_pair(a,i) );
        while (d.front().second <= i-k) d.pop_front();
        if(d.front().first > bM){
        	bM = d.front().first;
        	//bidx = d.front().second;
			bidx = i - k +1;
		}
    }
 
       fout<<bidx + 1<<" "<<bidx + k<<" "<<bM;
}