Cod sursa(job #2375743)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 8 martie 2019 11:54:27
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <deque>
#include <fstream>
#define MIN -30000
using namespace std;

deque <int>T;

ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k;
int a[500005];
int maxi=MIN, poz;
int main()
{
    //freopen("secventa.in", "r", stdin);
    //freopen("secventa.out", "w", stdout);
    f>>n>>k;
    for(int i=1; i<=n; i++)
    {
        f>>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>=1)
        i--;
    i++;
    g<<i<<' '<<i+k-1<<' '<<maxi;
    return 0;
}