Cod sursa(job #827174)

Utilizator Aida_SilviaStrimbeanu Aida Silvia Aida_Silvia Data 1 decembrie 2012 19:12:45
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<deque>

using namespace std;

#define maxn 500001


int a[maxn];


int main()
{
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "w", stdout);

	int n, k, i,ind1,ind2, max=-30000;

	scanf("%d %d", &n, &k);

	deque<int> v;

	for( int i = 1; i<= n; ++i)
	{

		scanf("%d", &a[i]);
		while((v.size() > 0) and  (a[v.back()] >= a[i]))
			v.pop_back();
		v.push_back(i);
		if( v.front() == i - k)
			v.pop_front();

		if( i >= k)
		  if (max<a[v.front()])
		  {
		      max=a[v.front()];
		      ind1=v.front();
		      ind2=v.back();
		  }

	}

	printf("%d %d %d",ind1, ind2, max);;


	return 0;
}