Pagini recente » Cod sursa (job #460498) | Cod sursa (job #3323034) | Cod sursa (job #3330566) | Cod sursa (job #3306724) | Cod sursa (job #3333999)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
const int MAXN = 500002;
int A[MAXN];
int deq[MAXN], front, back;
int N, K;
int ans, l, r;
int main()
{
fin >> N >> K;
front = 1;
back = 0;
ans = INT_MIN;
for (int i = 1; i <= N; ++i) {
fin >> A[i];
if (front <= back && deq[front] <= i - K) ++front;
while (front <= back && A[deq[back]] > A[i]) --back;
deq[++back] = i;
if (i < K) {
continue;
}
if (ans < A[deq[front]]) {
ans = A[deq[front]];
l = i - K + 1;
r = i;
}
}
fout << l << " " << r << " " << ans;
return 0;
}