Cod sursa(job #2808379)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 24 noiembrie 2021 22:53:38
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;
int n,k;
const int nmax=1e5;
short int arr[5*nmax+5];
short int bazamaxima,finalpos;
deque <short int> q;
int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>k;
    for(int i=0;i<n;++i)
        cin>>arr[i];
    int i;
    for(i=0;i<k;++i){
        while(!q.empty() && arr[i]<=arr[q.back()])
            q.pop_back();
        q.push_back(i);
    }
    for(;i<n;++i){
        if(arr[q.front()]>bazamaxima){
            bazamaxima=arr[q.front()];
            finalpos=i;
        }
        while(!q.empty() && q.front()<=i-k)
            q.pop_front();
        while(!q.empty() && arr[i]<=arr[q.back()])
            q.pop_back();
        q.push_back(i);
    }
    if(arr[q.front()]>bazamaxima){
        bazamaxima=arr[q.front()];
        finalpos=n-1;
    }
    cout<<finalpos+(finalpos==n-1?1:0)-k+1<<" "<<finalpos+(finalpos==n-1?1:0)<<" "<<bazamaxima;
}