Cod sursa(job #1796608)

Utilizator ionutpop118Pop Ioan Cristian ionutpop118 Data 3 noiembrie 2016 17:07:30
Problema Secventa Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <deque>
using namespace std;

deque <short int> dq;
short int v[500005];
int main()
{
    freopen("secventa.in", "r", stdin);
    freopen("secventa.out", "w", stdout);

    int n, k, dr;
    short int ans = -30002;
    scanf("%d %d", &n, &k);
    for (int i = 1; i <= n; ++i)
    {
        scanf("%hd", &v[i]);
        if (!dq.empty() && dq.front() + k <= i)
            dq.pop_front();
        while (!dq.empty() && v[i] < v[dq.back()])
            dq.pop_back();
        dq.push_back(i);
        if (i >= k && v[dq.front()] > ans)
        {
            ans = v[dq.front()];
            dr = i;
        }
    }
    printf("%d %d %hd\n", dr - k + 1, dr, ans);
    return 0;
}