Pagini recente » Cod sursa (job #2669315) | Cod sursa (job #2400136) | Cod sursa (job #206097) | Cod sursa (job #2062394) | Cod sursa (job #2446752)
#include <cstdio>
using namespace std;
FILE *fin,*fout;
int v[500001];
int d[500001];
int main()
{
fin=fopen("secventa.in","r");
int n,k,i,st,dr,max1,poz;
fscanf(fin,"%d%d",&n,&k);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
st=1;dr=0;
max1=-2000000005;poz=0;
for(i=1;i<=n;i++)
{
if(d[st]==i-k)++st;
while(st<=dr && v[d[dr]]>=v[i])--dr;
d[++dr]=i;
if(i>=k && st<=dr && v[d[st]]>max1)
{
max1=v[d[st]];
poz=i;
}
}
fout=fopen("secventa.out","w");
fprintf(fout,"%d %d %d",poz-k+1,poz,max1);
fclose(fout);
return 0;
}