Cod sursa(job #542045)

Utilizator Rares95Rares Arnautu Rares95 Data 25 februarie 2011 18:41:00
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
# include <cstdio>
  using namespace std;
		int K, N, i, Front = 1, Back, Deque[500001], A[500001], Baza = -0x3fffffff, VI = -1, VF = -1;
		int main ()
		{ freopen ("secventa.in", "rt", stdin); freopen ("secventa.out", "wt", stdout);
		  for (scanf ("%d%d", &N, &K), 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;
		}