Cod sursa(job #668667)

Utilizator marius.bucurBucur Marius - Ovidiu marius.bucur Data 25 ianuarie 2012 13:14:21
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<iostream>
#include<fstream>
#include<queue>
using namespace std;
deque<int>Q;
int N,K;
int a[500002];
int main(){
	ifstream in("secventa.in");
	ofstream out("secventa.out");
	in>>N>>K;
	int max=-30000;
	int start=0;
	for(int i=0;i<N;i++)
		in>>a[i];
	for(int i=0;i<N;i++){
		if(!Q.empty())
			while(a[Q.front()]>a[i]&&!Q.empty())
				Q.pop_front();
		Q.push_front(i);
		if(i-Q.back()>=K)
			Q.pop_back();
		if(a[Q.back()]>max&&i>=K){
			max=a[Q.back()];
			start=Q.front();
		}
	}
	cout<<max<<endl;
	out<<(start-K+2)<<" "<<(start+1)<<" "<<max<<endl;
}