Cod sursa(job #552039)

Utilizator blastoiseZ.Z.Daniel blastoise Data 11 martie 2011 15:58:25
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
#include <deque>

using namespace std;

int i,N,K,maxim,start;
int v[500001];

deque <int> d;

int main()
{
	ifstream in("secventa.in");
	ofstream out("secventa.out");

	in>>N>>K;

	for(i=0;i<N;i++) in>>v[i];

	maxim=-2000000000;
	start=0;
	d.push_back(0);
	for(i=1;i<N;i++)
	{
		if(d.front()+K==i) d.pop_front();
		while(d.size()&&v[d.back()]>v[i]) d.pop_back();
		d.push_back(i);
		if(i>=K)
			if(maxim<v[d.front()])
			{
				maxim=v[d.front()];
				start=d.front()+1;
			}
	}

	out<<start<<' '<<start+K-1<<' '<<maxim<<'\n';

	return 0;
}