Pagini recente » Cod sursa (job #2702739) | Cod sursa (job #2939083) | Cod sursa (job #2567760) | Cod sursa (job #2713777) | Cod sursa (job #2888013)
//Ilie Dumitru
#include<cstdio>
typedef long long int ll;
const int NMAX=500005;
const ll MOD=194767;
FILE* f=fopen("secventa.in", "r"), *g=fopen("secventa.out", "w");
int baza[NMAX], index[NMAX], start=0, end=0;
int main()
{
int N, K, i, x, maxB=-30005, pos;
fscanf(f, "%d%d", &N, &K);
for(i=0;i<N;++i)
{
fscanf(f, "%d", &x);
while(end>start && baza[end]>=x)
--end;
baza[end]=x;
index[end]=i;
++end;
while(start<end && index[start]<=i-K)
++start;
if(baza[start]>maxB && i>=K)
maxB=baza[start], pos=i;
}
fprintf(g, "%d %d %d", pos-K+2, pos+1, maxB);
fclose(f);
fclose(g);
return 0;
}