Cod sursa(job #2917672)

Utilizator STEFANBUSOIStefan Busoi STEFANBUSOI Data 6 august 2022 19:48:45
Problema Secventa Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb

#include <bits/stdc++.h>
using namespace std;
struct pereche{
    int val;
    int pos;
    pereche(int val,int pos){
    this->val=val;
    this->pos=pos;
    }
};
deque <pereche> Deque;
ifstream f("secventa.in");
ofstream g("secventa.out");
int main()
{
    int n,k,v[500001],mx=-3000000;
    f>>n>>k;
    for(int i=0;i<n;i++)
    {
        f>>v[i];
    }
    for(int i=0;i<n;i++){
        while(!Deque.empty()&&Deque.back().val>v[i])
            Deque.pop_back();
        Deque.push_back(*new pereche(v[i],i));
        while(i-k>=Deque.front().pos){
            Deque.pop_front();

        }
        if(i>=k-1)
            mx=max(mx,Deque.front().val);
    }

    int len=0;
    for(int i=0;i<n;i++){
        if(v[i]>=mx)
            len++;
        else
            len=0;
        if(len==k)
            g<<i-k+2<<" "<<i+1<<" "<<mx;

    }


}