Pagini recente » Cod sursa (job #3365835) | Borderou de evaluare (job #3366666) | Cod sursa (job #3366664) | Cod sursa (job #3365743) | Cod sursa (job #3366010)
#include <fstream>
using namespace std;
int v[500005], dq[500005];
ifstream cin("secventa.in");
ofstream cout("secventa.out");
int main() {
int n, k;
cin>>n>>k;
for (int i=1; i<=n; i++) {
cin>>v[i];
}
int cap=0, coada=0;
int maxim=-100000, start=0;
for (int i=1; i<=n; i++) {
while (cap<coada && v[dq[coada-1]]>=v[i]) {
coada--;
}
dq[coada++]=i;
if (dq[cap]<=i-k) {
cap++;
}
if (i>=k) {
int minim=v[dq[cap]];
if (minim>maxim) {
maxim=minim;
start=i-k+1;
}
}
}
cout<<start<<" "<<start+k-1<<" "<<maxim<<"\n";
return 0;
}