Cod sursa(job #1473703)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 20 august 2015 00:10:54
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#include <deque>
#define LIM 500023
using namespace std;
int n,k;
deque<int>d,p;
int main()
{
    freopen ("secventa.in","r",stdin);
    freopen ("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    int nr;
    for(int i=1;i<k;i++)
    {
        scanf("%d",&nr);
        while(!d.empty()&&d.back()>nr)
        {
            d.pop_back();
            p.pop_back();
        }
        d.push_back(nr);
        p.push_back(i);
    }
    int maxim=-50000,pos=0;
    for(int i=k;i<=n;i++)
    {
        if(p.front()<=i-k)
        {
            p.pop_front();
            d.pop_front();
        }
        scanf("%d",&nr);
        while(!d.empty()&&d.back()>nr)
        {
            d.pop_back();
            p.pop_back();
        }
        d.push_back(nr);
        p.push_back(i);
        if(maxim<d.front())
        {
            maxim=d.front();
            pos=p.front();
        }
    }
    printf("%d %d %d\n",pos,pos+k-1,maxim);
}