Pagini recente » Cod sursa (job #1714998) | Cod sursa (job #2452289) | Clasament simulare-cartita-03 | Cod sursa (job #2565239) | Cod sursa (job #542045)
Cod sursa(job #542045)
# 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;
}