Pagini recente » Cod sursa (job #1000729) | Cod sursa (job #2519034) | Cod sursa (job #3217326) | Cod sursa (job #2787905) | Cod sursa (job #975312)
Cod sursa(job #975312)
#include <cstdio>
using namespace std;
#define NMAX 500001
int i, N, K;
int Start = 1, End;
int st, dr, ANS;
int v[NMAX];
int Deque[NMAX];
void Insert(int i) {
while (Start <= End && v[i] <= v[Deque[End]]) --End;
Deque[++End] = i;
}
int Query(int p) {
while (Start <= End && Deque[Start] < p) ++Start;
return v[Deque[Start]];
}
int main() {
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%i%i", &N, &K);
for (i = 1; i <= N; ++i) {
scanf("%i", &v[i]);
Insert(i);
if (i >= K)
if (Query(i - K + 1) > ANS)
ANS = Query(i - K + 1), st = i - K + 1, dr = i;
}
printf("%i %i %i\n", st, dr, ANS);
return 0;
}