Pagini recente » Cod sursa (job #1517906) | Cod sursa (job #1227054) | Cod sursa (job #3173327) | Cod sursa (job #1807165) | Cod sursa (job #2544930)
#include <fstream>
#include <deque>
std::ifstream f("secventa.in");
std::ofstream g("secventa.out");
const int NMAX = 500'005;
int n,k,v[NMAX],sol,I,J;
std::deque<int>d;
int main(){
f >> n >> k;
for(int i = 1;i <= n;++i)
f >> v[i];
d.push_back(1);
for(int i = 2;i <= n;++i){
while(!d.empty() && v[i] <= v[d.back()])
d.pop_back();
d.push_back(i);
if(i - d.front() + 1 > k)
d.pop_front();
if(i >= k && i - d.front() + 1 >= k){
sol = std::max(sol,v[d.front()]);
I = d.front();
J = i;
}
}
g << I << ' ' << J << ' ' << sol;
return 0;
}