Pagini recente » Cod sursa (job #532337) | Cod sursa (job #1228046) | Cod sursa (job #930176) | Cod sursa (job #56980) | Cod sursa (job #426239)
Cod sursa(job #426239)
#include <stdio.h>
#include <stdlib.h>
FILE *fin;
FILE *fout;
typedef struct
{
int ind,x;
} el;
el dq[500000];
int main (int argc, char * const argv[]) {
fin=fopen("secventa.in","r");
fout=fopen("secventa.out","w");
int n,k;
fscanf(fin, "%d %d",&n,&k);
int back=0,front=0;
int32_t max=0x80000000;
int p=-1;
int i;
for (i=0; i<n; i++)
{
el c;
c.ind=i;
fscanf(fin,"%d",&c.x);
while ((front!=back)&&(dq[back].ind<=i-k))
back++;
while ((front!=back)&&(dq[front].x>c.x))
front--;
dq[++front]=c;
if ((i>=k-1)&&(dq[back].x>max))
{
max=dq[back].x;
p=i-k+1;
}
}
fprintf(fout, "%d %d %d\n",p+1,p+k,max);
fclose(fin);
fclose(fout);
return 0;
}