Pagini recente » Cod sursa (job #1433429) | Cod sursa (job #1166479) | Cod sursa (job #1901890) | Cod sursa (job #1446100) | Cod sursa (job #2798137)
#include <iostream>
#include <deque>
#include <climits>
#define MAXN 500002
using namespace std;
int N, K, A[MAXN], best = -INT_MAX, spos = 0, epos = 0;
deque<int> q;
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d %d", &N, &K);
for(int i = 1; i <= N; i++) {
scanf("%d", &A[i]);
}
for(int i = 1; i <= N; i++) {
while(!q.empty() && A[q.back()] > A[i])
q.pop_back();
if(!q.empty() && q.front() <= i - K)
q.pop_front();
q.push_back(i);
if(i >= K) {
int pre_best = max(A[q.front()], best);
if(best != pre_best) {
best = pre_best;
spos = i - K + 1;
epos = i;
}
}
}
cout << spos << " " << epos << " " << best;
return 0;
}