Pagini recente » Cod sursa (job #2045233) | Cod sursa (job #1912963) | Cod sursa (job #2770331) | Cod sursa (job #2240090) | Cod sursa (job #2891431)
#include <deque>
#include <iostream>
#include <cstdio>
#define NMAX 500005
#define MIN -30005
using namespace std;
int v[NMAX];
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; ++i)
cin >> v[i];
deque <int> dq;
int best = MIN, best_end, best_start;
for (int i = 1; i <= n; ++i) {
while (!dq.empty() && v[dq.back()] > v[i])
dq.pop_back();
dq.push_back(i);
if (i - dq.front() + 1 > k)
dq.pop_front();
if (v[dq.front()] > best) {
best = v[dq.front()];
best_start = dq.front();
best_end = i;
}
}
while (best_start >= 2 && v[best_start - 1] >= best)
--best_start;
cout << best_start << ' ' << best_end << ' ' << best << '\n';
return 0;
}