Pagini recente » Cod sursa (job #672505) | Cod sursa (job #1830794) | Cod sursa (job #1540707) | Cod sursa (job #13941) | Cod sursa (job #547723)
Cod sursa(job #547723)
//#include<stdio.h>
#include<fstream>
using namespace std;
int deque[500001], v[500001];
int main(){
//freopen ("secventa.in", "r", stdin);
//freopen ("secventa.out", "w", stdout);
ifstream f ("secventa.in");
ofstream w ("secventa.out");
int n, i, k, max=-500000, x;
//scanf("%d %d ", &n, &k);
f>>n>>k;
for(i=1; i<=n; i++)
//scanf("%d ", &v[i]);
f>>v[i];
int front=1, back=0;
for(i=1; i<=n; i++){
while(front<=back && v[i]<=v[deque[back]])
back--;
deque[++back]=i;
while(front<=back && i-k>=deque[front]){
front++;
}
if(v[deque[front]]>max && i>=k){
max=v[deque[front]];
x=i;
}
}
//printf("%d %d %d\n", x-k+1, x, max);
w<<x-k+1<<" "<<x<<" "<<max;
return 0;
}