Pagini recente » Cod sursa (job #890584) | Cod sursa (job #683590) | Cod sursa (job #1615021) | Cod sursa (job #250941) | Cod sursa (job #1493690)
#include <stdio.h>
#include <stdlib.h>
int v[500000], indice[500000];
int main(){
FILE *fin, *fout;
int n, k, i, i2, y, max, nr, incep, mem;
fin=fopen("secventa.in", "r");
fout=fopen("secventa.out", "w");
fscanf(fin, "%d%d%d", &n, &k, &v[0]);
i2=1;
indice[0]=0;
for(i=1;i<k;i++){
fscanf(fin, "%d", &nr);
while(nr<=v[i2-1] && i2>0)
i2--;
v[i2]=nr;
indice[i2]=i;
i2++;
}
//printf("%d %d", v[0], indice[0]);
max=v[0];
mem=indice[0];
y=0;
incep=0;
for(i=k;i<n;i++){
fscanf(fin, "%d", &nr);
while(nr<=v[i2-1] && i2>y)
i2--;
v[i2]=nr;
indice[i2]=i;
if(indice[y]==incep)
y++;
if(v[y]>max){
max=v[y];
mem=indice[y]+1;
}
i2++;
incep++;
}
fprintf(fout, "%d %d %d", mem, mem+k-1, max);
fclose(fin);
fclose(fout);
return 0;
}