Cod sursa(job #2375731)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 8 martie 2019 11:51:04
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <deque>

#define MIN -30000
using namespace std;

deque <int>T;
int n, k;
int a[500005];
int maxi=MIN, poz;
int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);
    scanf("%d %d", &n, &k);
    for(int i=1; i<=n; i++)
    {
        scanf("%d", &a[i]);
        while(T.front()<i-k+1 && !T.empty()){
            T.pop_front();
        }
        while(!T.empty() && a[T.back()]>a[i])
            T.pop_back();
        T.push_back(i);
        if(i>=k)
        {
            if(a[T.front()]>maxi)
            {
                maxi=a[T.front()];
                poz=T.front();
            }
        }
    }
    int i=poz;
    i = poz;
    while (a[i] >= maxi)
        i--;
    i++;
    printf("%d %d %d", i, i+k-1, maxi);
    return 0;
}