Cod sursa(job #523547)

Utilizator matei_cChristescu Matei matei_c Data 18 ianuarie 2011 15:50:11
Problema Secventa Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>

int n,k,y,baza,bazamax,start,end;
int x[500001],t[500001];
int main()
{
	int i;
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%d%d%d",&n,&k,&y);
	x[1]=y;
	t[1] = 1;
	int first = 1, last = 1;
	bazamax=-30001;
	for(i=2;i<=n;i++)
	{
		scanf("%d",&y);
		while(y < x[last] && last >= first)
			last--;
		x[ ++last ] = y;
		t[ last ] = i;
		if( t[ first ] + k <= i ) first++;
		baza=x[first];
		if(baza>bazamax)
		{
			bazamax=baza;
			start=i-k+1;
			end=i;
		}	
	}
	printf("%d %d %d\n",start,end,bazamax);
	return 0;
}