Pagini recente » Cod sursa (job #1725388) | Cod sursa (job #818682) | Cod sursa (job #2710569) | Cod sursa (job #1158483) | Cod sursa (job #27368)
Cod sursa(job #27368)
#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,PozInit,PozFin);
fclose(f);
fclose(g);
return 0;
}