Pagini recente » Cod sursa (job #475470) | Cod sursa (job #3166886) | Cod sursa (job #1046601) | Cod sursa (job #373435) | Cod sursa (job #2809427)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int const N = 5e5 + 3 , inf = (1 << 30);
int v [N];
int main(){
int n , k;
fin >> n >> k;
for(int i = 0 ; i < n ; ++ i)
fin >> v [i];
deque <int> d;
int ans (-inf) , left , right;
for(int i = 0 ; i < n ; ++ i){
while (d.size () && i - d.front () >= k)
d.pop_front ();
while (d.size () && v [d.back ()] > v [i])
d.pop_back ();
d.push_back (i);
if (d.size () && i >= k && v [d.front ()] > ans){
ans = v [d.front ()];
right = i + 1;
}
}
fout << right - k + 1 << ' ' << right << ' ' << ans << '\n';
fin.close();
fout.close();
return 0;
}