Cod sursa(job #519788)

Utilizator auRSTARHreapca Aurelian auRSTAR Data 6 ianuarie 2011 15:55:13
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>
#include<deque>
#include<utility>
using namespace std;
deque<pair<int,int> > Q;
void read(),solve();
int i,n,a,maxim,k,I,J;
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%d%d",&n,&k);
}
void solve()
{
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		if(Q.empty()){Q.push_back(make_pair(a,i));continue;}
		for(;Q.back().first>a&&!Q.empty();)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;I=Q.front().second;J=I+k-1;}
	}
	printf("%d %d %d",I,J,maxim);
}