for (i=1;i<=n;++i){ while(!d.empty() && v[i]<=v[d.front()]) d.pop_front(); d.push_front(i); if(d.back()<=i-k) d.pop_back(); if (i>=k && v[d.back()]>maxZ){ maxZ=v[d.back()]; dr=i; st=i-k+1;} }
for (i=1;i<=n;++i){ fin>>x; if (ps==0) d.pop_back(); while(x<d.front()&&!d.empty()){ d.pop_front(); ++ps; } d.push_front(x); --ps; if (d.back()>maxZ&&i>=k){ maxZ=d.back(); dr=i; st=i-k+1;} }