Pagini recente » Cod sursa (job #2430350) | Cod sursa (job #84121) | Cod sursa (job #1780793) | Cod sursa (job #611391) | Cod sursa (job #1050323)
#include <stdio.h>
using namespace std;
FILE *f=fopen("secventa.in","r"),*g=fopen("secventa.out","w");
int n,v[500001],deque[500001],i,front,back,k,Max=-999999,start,finish;
int main()
{
fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
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(v[deque[front]]>Max && i>=k){
Max=v[deque[front]];
start=i-k+1;
finish=i;
}
}
fprintf(g,"%d %d %d",start,finish,Max);
return 0;
}