Cod sursa(job #607454)

Utilizator SteveStefan Eniceicu Steve Data 12 august 2011 03:27:36
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream.h>

int main ()
{
	int dq[500001], v[500001], max=-30001;
	long N, K, i, f=0, l=-1, unde;
	ifstream fin;
	fin.open ("secventa.in");
	fin>>N>>K;
	for (i=0; i<N; i++)
	{
		fin>>v[i];
	}
	fin.close ();
	for (i=0; i<N; i++)
	{
		while (f <= l && v[i] <= v[dq[l]])
		{
			l--;
		}
		dq[++l]=i;
		if (dq[f] == i-K) f++;
		if (i >= K && v[dq[f]]>max)
		{
			max=v[dq[f]];
			unde=i;
		}
	}
	ofstream fout;
	fout.open ("secventa.out");
	fout<<unde-K+2<<" "<<unde+1<<" "<<max;
	fout.close ();
	return 0;
}