Cod sursa(job #1861783)

Utilizator vagrosuVictor Alessandru Grosu vagrosu Data 29 ianuarie 2017 12:03:41
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
struct elem { int val, pos; }x;
deque<elem> v;
long long n, k, i, l, s, cst, cdr, cstm, cdrm,m;
int main()
{
	fin >> n >> k;
	for (i = 1;i <= k;i++)
	{
		fin >> x.val;
		x.pos = i;
		while (!v.empty() && v.back().val > x.val)
			v.pop_back();
		v.push_back(x);
	}
	cst = 1;cdr = k;m = v.front().val;cstm = 1;cdrm = k;
	for (i = k + 1;i <= n;i++) {
		cst++;
		cdr++;
		fin >> x.val;
		x.pos = i;
		if (v.front().pos < cst)
			v.pop_front();
		while (!v.empty() && v.back().val > x.val)
			v.pop_back();
		v.push_back(x);
		if (v.front().val > m)
		{
			cstm = cst;
			cdrm = cdr;
			m = v.front().val;
		}

	}
	fout << cstm << ' ' << cdrm << ' ' << m;

}