Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #3305421) | Borderou de evaluare (job #1654771) | Cod sursa (job #3324855) | Cod sursa (job #3333992)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
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 (ans < A[deq[front]]) {
ans = A[deq[front]];
l = i - K + 1;
r = i;
}
}
fout << l << " " << r << " " << ans;
return 0;
}