Cod sursa(job #650448)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 18 decembrie 2011 09:32:09
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<iostream>
#include<fstream>
using namespace std;
short c[500001],v[500001];
int main ()
{
	int n,i,k,st,dr,max,sfarsit;
	ifstream f("secventa.in");
	ofstream g("secventa.out");
	f>>n>>k;
	for(i=1;i<=n;i++)
		f>>v[i];
	f.close();
	st=1;
	dr=0;
	max=-100000;
	for(i=1;i<=n;i++) {
		while((st<=dr)&&(v[c[dr]]>=v[i]))
			dr--;
		c[++dr]=i;
		if(c[st]<=(i-k))
			st++;
		if(v[c[st]]>max) {
			max=v[c[st]];
			sfarsit=i;
		}
	}
	g<<sfarsit-k+1<<" "<<sfarsit<<" "<<max;
	g.close();
	return 0;
}