Cod sursa(job #323739)

Utilizator RobybrasovRobert Hangu Robybrasov Data 13 iunie 2009 12:29:52
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <deque>
#define N 500001
#define inf 0x3f3f3f3f

using namespace std;

int V[N];
deque<int> DQ;
deque<int>::iterator it;

int main()
{
    int n,k,i,poz,maxim=-inf;
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    for (i=1; i<=n; i++)
    {
        scanf("%d",&V[i]);
        while (!DQ.empty() && V[i]<=V[DQ.back()]) DQ.pop_back();
        DQ.push_back(i);
        if (DQ.front()<=i-k) DQ.pop_front();
        if (i>=k && V[DQ.front()]>maxim)
        {
            maxim=V[DQ.front()];
            poz=i;
        }
    }

    printf("%d %d %d",poz-k+1,poz,maxim);

    return 0;
}