Cod sursa(job #2191609)

Utilizator MoldooooooooMoldoveanu Stefan Moldoooooooo Data 3 aprilie 2018 10:20:10
Problema Secventa Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> MinS, MinP;
int N, i, K, x, vf, stmin, drmin, minmax, st, dr;
int main()
{
	fin >> N >> K;
	for (i = 0; i < K; i++) {
		fin >> x;
		while (MinS.size() && x < MinS.back()) {
			MinS.pop_back();
			MinP.pop_back();
		}
		MinS.push_back(x);
		MinP.push_back(i + 1);
	}
	minmax = MinS.front();
	stmin = st = 1;
	drmin = dr = K;
	vf = 4;
	while (fin >> x) {
		if ((vf - MinP.front()) == K) {
		MinS.pop_front();
		MinP.pop_front();
		}
		while (MinS.size() && (x < MinS.back())) {
			MinS.pop_back();
			MinP.pop_back();
		}
		MinS.push_back(x);
		MinP.push_back(vf);
		st++;  dr++;
		if (MinS.size() && (MinS.front() > minmax)) {
			stmin = st;
			drmin = dr;
			minmax = MinS.front();
		}
		vf++;
	}
	fout << stmin << " " << drmin << " " << minmax;
    return 0;
}