Cod sursa(job #1527993)

Utilizator vancea.catalincatalin vancea.catalin Data 18 noiembrie 2015 22:22:05
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<iostream>
#include<fstream>
#define D 500000
using namespace std;
fstream fin("secventa.in",ios::in),fout("secventa.out",ios::out);
int n,c,maxim=-999999,pi,pf;
short x[2*D+10],a,ind[2*D+10];
int p=D+1,u=D;
int main()
{
    int i,n,k,r;
    fin>>n>>k;
    fin>>a;
    x[++u]=a;
    ind[u]=1;
    for(i=2;i<=n;i++)
    {
        fin>>a;
        while(p<=u&&x[u]>=a) u--;
        x[++u]=a;
        ind[u]=i;
        while(ind[u]-ind[p]+1>k&&x[p]<x[p+1]) p++;
        if(ind[u]-ind[p]+1>=k&&x[p]>maxim)
        {
            maxim=x[p];
            pi=ind[p];
            pf=ind[u];
        }
    }
    fout<<pi<<" "<<pf<<" "<<maxim;
}