Pagini recente » Cod sursa (job #199557) | Cod sursa (job #1241715) | Cod sursa (job #136655) | Cod sursa (job #1419075) | Cod sursa (job #812281)
Cod sursa(job #812281)
#include <cstdio>
#include <cstdlib>
int v[500001],deque[500001];
int min,max,baza = -30001,n,k;
int a,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;
a = 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]];
a = i-k+1;
b = i;
}
}
fprintf(g,"%d %d %d",a,b,baza);
fclose(f);
fclose(g);
return 0;
}