Cod sursa(job #1503671)

Utilizator ArkinyStoica Alex Arkiny Data 16 octombrie 2015 18:43:08
Problema Secventa Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<deque>
using namespace std;

ifstream in("secventa.in");
ofstream out("secventa.out");

deque<int> d, v;

int N, K;

int main()
{
	in >> N >> K;
	int e,l,min=1<<31,left=0,right=0;
	for (int i = 1;i <= N;++i)
	{
		in >> e;
		l = d.size();
		while (l && e < d.back())
		{
			d.pop_back();
			v.pop_back();
			--l;
		}
		d.push_back(e);
		v.push_back(i);
		if (i >= K)
		{
			if (d.front() > min)
			{
				min=d.front();
				left = i-K+1;
				right =i ;
			}
			if (v.front() == i-K+1)
			{
				d.pop_front();
				v.pop_front();
			}
		}
	}
	out << left << " " << right<<" "<<min;
	return 0;
}