Cod sursa(job #2266444)

Utilizator q1e123Solca Robert-Nicolae q1e123 Data 22 octombrie 2018 17:51:42
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include<deque>
#include <climits>
using namespace std;

ifstream INPUT_FILE("secventa.in");
ofstream OUTPUT_FILE("secventa.out");

deque<int>d;
int n,k;

int main() {
    int bazaMaxima=INT_MIN,st,dr;
    st=dr=-1;
    INPUT_FILE>>n>>k;
    int elem[n];
    for(int i=0;i<n;++i){
        INPUT_FILE>>elem[i];
        while(!d.empty() && elem[i]<=elem[d.back()]) d.pop_back();
        d.push_back(i);

        if (i > k)
        {
            while(!d.empty() && i-d.front()>=k) d.pop_front();
            if(elem[d.front()] > bazaMaxima) {
                bazaMaxima = elem[d.front()];
                st = i - k + 2;
                dr = i+1;
            }
        }
    }
    OUTPUT_FILE<<st<<" "<<dr<<" "<<bazaMaxima;

    return 0;
}