Cod sursa(job #2451535)

Utilizator urweakurweak urweak Data 27 august 2019 10:06:31
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#define nmax 500050

using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");

int N, K, A[nmax], Deque[nmax], maxim = -1;

int main(){
	in >> N >> K;

	for(int i = 1; i<=N; i++)
		in >> A[i];

	int Front = 1, Back = 0;
	for(int i = 1; i<=N; i++){
		while(Front <= Back && A[i] > A[Deque[Back]]) Back--;
		if(Back < Front){
			if(Deque[Front] + K >= i) Deque[++Front] = i, Back = Front;
		}
		else Deque[++Back] = i;
	}

	while(Deque[Front] + K - 1 > N)
		Front--;
	out << Deque[Front] <<' '<<Deque[Front] + 2 <<' '<< A[Deque[Front]];
	return 0;
}