Pagini recente » Cod sursa (job #2923292) | Cod sursa (job #2811323) | Cod sursa (job #1844523) | Cod sursa (job #745338) | Cod sursa (job #288827)
Cod sursa(job #288827)
#include <stdio.h>
#define max 500032
#define min -32768
#define IN "secventa.in"
#define OUT "secventa.out"
FILE *fin=fopen(IN,"r");
FILE *fout=fopen(OUT,"w");
int n,k;
int maxim,prima,ultima,st,dr;
int v[max],deque[max];
int main()
{
int i;
fscanf(fin,"%d %d",&n,&k);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
for(i=1,maxim=min,st=1,dr=0;i<=n;i++)
{
while(st<=dr && v[i]<=v[deque[dr]])
--dr;
deque[++dr]=i;
if(deque[st]==i-k)
++st;
if(i>=k)
if(v[deque[st]]>maxim)
{
maxim=v[deque[st]];
prima=i-k+1;
ultima=i;
}
}
fprintf(fout,"%d %d %d",prima,ultima,maxim);
fclose(fout);
return 0;
}