Pagini recente » Cod sursa (job #1259682) | Cod sursa (job #1371547) | Cod sursa (job #1632880) | Cod sursa (job #2877278) | Cod sursa (job #2739675)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
const int nmax = 5e5 + 5;
int n, k, v[nmax];
int main()
{
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
deque <int> deq;
for (int i = 1; i <= k; ++i) {
while (!deq.empty() && v[i] <= v[deq.back()])
deq.pop_back();
deq.push_back(i);
}
int ans = -nmax, st = 0, dr = 0;
for (int i = k; i <= n; ++i) {
while (!deq.empty() && i - deq.front() >= k)
deq.pop_front();
int mini = min(v[i], v[deq.front()]);
if (mini > ans) {
ans = mini;
st = i - k + 1;
dr = i;
}
while (!deq.empty() && v[i] <= v[deq.back()]) {
deq.pop_back();
}
deq.push_back(i);
}
fout << st << ' ' << dr << ' ' << ans;
return 0;
}