Cod sursa(job #1506172)

Utilizator tudi98Cozma Tudor tudi98 Data 20 octombrie 2015 08:29:55
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <deque>
using namespace std;

int a[500001];
deque<int> D;

int main()
{
	ifstream fin("secventa.in");
	ofstream fout("secventa.out");

	int N,K;

	fin >> N >> K;

	for (int i = 1; i <= N; i++)
		fin >> a[i];

	int best = -30001,from = 0;

	for (int i = 1; i <= N; i++)
	{
		while (!D.empty() && i - D.front() + 1 > K)
			D.pop_front();
		while (!D.empty() && a[D.back()] > a[i])
			D.pop_back();

		D.push_back(i);

		if (i >= K && a[D.front()] > best)
		{
			best = a[D.front()];
			from = i;
		}
	}

	fout << from - K + 1 << " " << from << " " << best;
}