Cod sursa(job #2676355)

Utilizator 23liviuStanescu Liviu 23liviu Data 24 noiembrie 2020 09:27:16
Problema Secventa Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
using namespace std;
const int lim = 5e5+5;
int arr[lim], dq[lim];
int main()
{
    ifstream cin ("secventa.in");
    ofstream cout ("secventa.out");

    int n, K, Front = 1, Back = 0;
    cin >> n >> K;
    int l, r, maxx = -1e8;
	for (int i = 1; i <= n; i++)
	{
        cin >> arr[i];
		while (Front <= Back && arr[i] <= arr[dq[Back]])
            Back--;
        dq[++Back] = i;
        if (dq[Front] == i-K)
            Front++;
		if (i >= K && maxx < arr[dq[Front]])
		{
		    l = i - K + 1;
		    r = i;
            maxx = arr[dq[Front]];
            //cout << l << " " << r << " " << maxx << endl;
		}
	}
    cout << l << " " << r << " " << maxx;
    return 0;
}