Cod sursa(job #1428745)

Utilizator armageddon89_rAdrian D armageddon89_r Data 5 mai 2015 00:15:51
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>


int deque[500000];
int v[500000];
int main()
{
	freopen("secventa.in", "r", stdin);
	freopen("secventa.out", "w", stdout);

	int n, k;
	scanf("%d %d", &n, &k);

	scanf("%d", &v[0]);
	int l = 0;
	int r = 0;
	deque[l] = 0;
	int max = v[0];
	int pozmin = 0;

	for (int i = 1; i < n; i++)
	{
		scanf("%d", &v[i]);
		while (r >= l && v[i] < v[deque[r]])
		{
			r--;
		}

		deque[++r] = i;

		int val = deque[l];
		if (v[val] > max)
		{
			max = v[val];
			pozmin = val;
		}

		if (i - val == k - 1)
			l++;
	}

	printf("%d %d %d\n", pozmin + 1, pozmin + k > n ? n : pozmin + k, max);

	return 0;
}