Cod sursa(job #2405942)

Utilizator SirVSbiVidam Szablocs SirVSbi Data 15 aprilie 2019 10:43:27
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>


#define NMAX 500001

using namespace std;

int nums[NMAX];
int deque[NMAX];


int main(){
    ifstream be("secventa.in");
    ofstream ki("secventa.out");

    int n, k;
    be >> n >> k;
    int left = 1, right = 0;
    int start, end, max = -30001;


    for(int i = 1; i <= n; ++i)
        be >> nums[i];

    for(int i = 1; i <= n; ++i){
        while(left <= right && nums[i] <= nums[deque[right]])
            --right;

        deque[++right] = i;
        if(deque[left] == i - k)
            ++left;
        if(i >= k){
            if(nums[deque[left]] > max){
                max = nums[deque[left]];
                start = i - k + 1;
                end = i;
            }
        }

    }

    ki << start <<" "<< end <<" "<< max;



}