Cod sursa(job #2314909)

Utilizator TheNextGenerationAyy LMAO TheNextGeneration Data 9 ianuarie 2019 11:30:25
Problema Secventa Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
const int N = 5e5+1;
int v[N];
deque<int> q;
int main()
{
    int n,k;
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d %d",&n, &k);
    for (int i = 1; i<=n; i++)
        scanf("%d",&v[i]);
    int Max = -1e9, dr = k;
    for (int i = 1; i<=n; i++)
    {
        while (!q.empty() && v[q.back()]>=v[i])
            q.pop_back();
        q.push_back(i);
        if (i-q.front() == k)
            q.pop_front();
        if (i>=k && v[q.front()]>Max)
        {
            Max = v[q.front()];
            dr = i;
        }
    }
    printf("%d %d %d",dr-k+1,dr,Max);
}