Cod sursa(job #627152)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 29 octombrie 2011 10:11:04
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <deque>
using namespace std;

int v[500005];
deque <int > d;
int main()
{
	int n,rez=0,x,y,k;
	freopen("secventa.in","r", stdin);
	freopen("secventa.out","w", stdout);
	scanf("%d %d",&n,&k);
	for(int i=1;i<=n;i++) scanf("%d ",&v[i]);
	for(int i=1;i<=n;i++)
	{
		while(d.size()>0 && v[d.back()]>=v[i]) d.pop_back();		
		d.push_back(i);
		if(d.front()<=i-k) d.pop_front();
		
		if(i>=k && v[d.front()]>rez)
		{		
			x=i-k+1;
			y=i;
			rez=v[d.front()];
		}
	}
	printf("%d %d %d",x,y,rez);
	fclose(stdin);
	fclose(stdout);
	return 0;
}