Pagini recente » Cod sursa (job #2191709) | Cod sursa (job #1897912) | Cod sursa (job #2835537) | Cod sursa (job #70484) | Cod sursa (job #547483)
Cod sursa(job #547483)
#include<stdio.h>
#include<algorithm>
using namespace std;
int deque[500001], v[500001];
struct vector{
int x, y, z;
};
vector u[500001];
int cmp(vector x, vector y){
return x.z>x.z;
};
int main(){
freopen ("secventa.in", "r", stdin);
freopen ("secventa.out", "w", stdout);
int n, i, k, z=1;
scanf("%d %d ", &n, &k);
for(i=1; i<=n; i++)
scanf("%d ", &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;
if(deque[front]==i-k)
front++;
if(i>=k){
u[z].x=deque[front];
u[z].y=deque[front]+k-1;
u[z++].z=v[deque[front]];
//printf("%d ", v[deque[front]]);
}
}
sort(u+1, u+z, cmp);
//for(i=1; i<z; i++)
printf("%d %d %d\n", u[z-1].x, u[z-1].y, u[z-1].z);
return 0;
}