Cod sursa(job #2449796)

Utilizator r00t_Roman Remus r00t_ Data 20 august 2019 19:17:10
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <cmath>
#include <cstdlib>
#include <string>
#include <map>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <deque>
#include <algorithm>


using namespace std;

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

struct nr
{
	int val, poz;
	nr(int val, int poz)
	{
		this->val = val;
		this->poz = poz;
	}
};

deque<nr>dq;


int main()
{
	int n, k, Max = -100000, prez = 0, i = 0;
	fin >> n >> k;
	vector<nr>nrs;
	for (i = 0; i < n; i++)
	{
		int x;
		fin >> x;
		nr aux(x, i);
		nrs.push_back(aux);
		if (i - k >= 0 && Max < dq.front().val) 
			Max = max(Max, dq.front().val), prez = i-1;
		if (i - k >= 0 && dq.front().poz <= i-k)
			dq.pop_front();
		while (dq.size() != 0 && dq.back().val > x)
			dq.pop_back();
		dq.push_back(nr(x, i));
	}
	if (i - k >= 0 && Max < dq.front().val) Max = max(Max, dq.front().val), prez = i-1;
	
	fout << prez - k + 2 << ' ' << prez+1 << ' ' << Max;

}