Pagini recente » Cod sursa (job #947863) | Cod sursa (job #2396013) | Cod sursa (job #2114380) | Cod sursa (job #1489825) | Cod sursa (job #812379)
Cod sursa(job #812379)
#include <cstdio>
#include <cstdlib>
int v[500001],deque[500001];
int min,max,baza = -30001,n,k;
int b;
int main ()
{
FILE *f,*g;
f = fopen("secventa.in","r");
g = fopen("secventa.out","w");
fscanf(f,"%d %d",&n,&k);
for ( int i = 1; i <= n ; i++ )
fscanf(f,"%d",&v[i]);
min = 1;
max = 0;
b = 0;
for ( int i = 1; i <= n ; i++ )
{
while ( v[i] < v[deque[max]] && max >= min ) max--;
deque[++max] = i;
if ( deque[min] == i-k ) min++;
if ( i >= k && baza < v[deque[min]] )
{
baza = v[deque[min]];
b = i;
}
}
fprintf(g,"%d %d %d",b-k+1,b,baza);
fclose(f);
fclose(g);
return 0;
}