Cod sursa(job #2405914)

Utilizator SirVSbiVidam Szablocs SirVSbi Data 15 aprilie 2019 10:24:52
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 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;
            }
        }

    }

    for(int i = start; i <= end; i++){
        ki << nums[i] << " ";
    }




}