Cod sursa(job #427724)

Utilizator laurenttlaurentiu pavel laurentt Data 28 martie 2010 13:06:17
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
#include<deque>
using namespace std;

#define minmax -30000

int n,k,c,a[500001],maxim;

deque<int> d;

void cit()
{
	int i;
	scanf("%d %d",&n, &k);
	for(i=1; i<=n; i++)
		scanf("%d",&a[i]);
}

void rez()
{
	maxim=minmax;
	int i;
	d.push_back(1);
	for(i=2; i<=n; i++)
	{
		if( d.front()<=i-k )
			d.pop_front();
		
		while( a[ d.back()] > a[ d.back()+1 ] )
			d.pop_back();
		
		d.push_back(i);
		
		if( maxim < a[ d.front() ] )
		{
			maxim=a[d.front()];
			c=d.front();
		}
	
	}
}


void afis()
{
	printf("%d %d %d",c,c+k-1,maxim);
}


int main()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	
	cit();
	rez();
	afis();
	
	return 0;
}