Cod sursa(job #542048)

Utilizator Rares95Rares Arnautu Rares95 Data 25 februarie 2011 18:45:32
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
# include <cstdio>
  using namespace std;
		int k, n, i, front = 1, back, deque[500001], a[500001], baza = -30001, vi = -1, vf = -1;
		int main ()
		{ freopen ("secventa.in", "rt", stdin); freopen ("secventa.out", "wt", stdout);
		  scanf ("%d%d", &n, &k); for (i = 1; i <= n; ++i) scanf ("%d", &a[i]);
			for (i = 1; i <= n; ++i)
			{ while (front <= back && a[i] <= a[deque[back]]) back --;
			  deque [ ++ back ] = i;
			  if (deque[front] == i - k) front ++;
				if (i >= k && a[deque[front]] > baza) {baza = a[deque[front]]; vi = i - k + 1; vf = i;}
			}
			printf ("%d %d %d\n", vi, vf, baza); return 0;
		}