Cod sursa(job #813141)

Utilizator alinaelenaFMI Colceag Alina alinaelena Data 14 noiembrie 2012 23:00:44
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<cstdio>
using namespace std; 
int v[5000001],deq[5000001];

int main()
{
	int n,k,p,u,max=-1,poz,i;
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%d %d",&n,&k);
	p=1;
	u=0;
	for (i=1;i<=n;++i)
		scanf("%d",&v[i]);
	
	for (i=1;i<=n;++i)
	{
		while ((v[i]<=v[deq[u]])&&(p<=u))
			u--;
		u++;
		deq[u]=i;
		
		if (i-deq[p]>=k) p++;
		
		if (i>=k) 
			if (max<v[deq[p]]) 
			{ max=v[deq[p]];
			poz=i;
			}
	}	
		printf("%d %d %d",poz-k+1,poz,max);	
	
}