Cod sursa(job #696284)

Utilizator auRSTARHreapca Aurelian auRSTAR Data 28 februarie 2012 17:51:35
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#include<deque>
#include<fstream>
#include<utility>
using namespace std;
deque<pair<int,int> > Q;
void read(),solve();
int i,n,a,maxim,k,I,J;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	cin>>n>>k;
}
void solve()
{
	maxim=-50000;
	for(i=1;i<=n;i++)
	{
		cin>>a;
		if(Q.empty()){Q.push_back(make_pair(a,i));continue;}
		for(;!Q.empty()&&Q.back().first>=a;Q.pop_back());
		Q.push_back(make_pair(a,i));
		for(;Q.front().second<(i-k+1);Q.pop_front());
		if(i>=k)if(maxim<Q.front().first){maxim=Q.front().first;J=i;I=J-k+1;}
	}
	cout<<I<<" "<<J<<" "<<maxim;
}