Pagini recente » Cod sursa (job #544707) | Cod sursa (job #1720434) | Cod sursa (job #292435) | Cod sursa (job #1872842) | Cod sursa (job #27390)
Cod sursa(job #27390)
#include<stdio.h>
FILE* f= fopen("secventa.in", "rt");
FILE* g = fopen("secventa.out", "wt");
long int contor=0,deque[500001],primul=1,ultimul,N,K,max,PozInit,PozFin;
inline void sterge_ultimul()
{ultimul--;
contor--;}
inline void sterge_primul()
{
contor--;
primul=ultimul-K+1;
}
inline void adauga(long int info)
{ultimul++;
deque[ultimul]=info;
contor++;}
int main()
{
fscanf(f,"%ld %ld",&N,&K);
for(long int i=1;i<=K;i++)
{long int aux;
fscanf(f,"%ld",&aux);
if(i!=1)
while(aux<deque[ultimul])
sterge_ultimul();
adauga(aux);
}
max=deque[primul];
PozInit=1;PozFin=K;
for(long int i=K+1;i<N;i++)
{
long int aux;
fscanf(f,"%ld",&aux);
adauga(aux);
if(contor>K)
sterge_primul();
while(aux<deque[ultimul])
sterge_ultimul();
if(max<deque[primul])
{max=deque[primul];
PozInit=primul;
PozFin=primul+K-1;
}
}
fprintf(g,"%ld %ld %ld",max,PozFin,PozInit);
fclose(f);
fclose(g);
return 0;
}