Pagini recente » Cod sursa (job #1311862) | Cod sursa (job #814961)
Cod sursa(job #814961)
#include <cstdio>
#include <cstdlib>
#include <cstring>
int v[500001],deque[500001];
int min,max,baza = -30001,n,k;
int b;
int citire(FILE f)
{
}
int main ()
{
FILE *f,*g;
f = fopen("secventa.in","r");
g = fopen("secventa.out","w");
fscanf(f,"%d %d ",&n,&k);
char c = fgetc(f);
int semn,x = 0,i = 0;
while ( c != EOF ) {
if ( c == '-' ) semn = -1;
else if ( c >= '0' && c <= '9' ) x = x * 10 + c - '0';
else if ( c == ' ' || c == '\n' )
{
v[++i] = semn * x;
x = 0;
semn = 1;
}
c = fgetc(f);
}
min = 1;
max = 0;
b = 0;
for ( int i = 1; i <= n ; i++ )
printf("%d ",v[i]);
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;
}