Cod sursa(job #42231)
Utilizator | Data | 28 martie 2007 23:29:41 | |
---|---|---|---|
Problema | Secventa | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.68 kb |
// Problema secventa
#include <stdio.h>
#define MAX 500001
#define MAXIM 32000
int sir[MAX];
int minim[MAX];
int main()
{
long n, k, i, pozmin, j, p, q;
int min, max;
freopen( "secventa.in" , "rt", stdin );
max = -MAXIM;
pozmin = 0;
p = 1;
q = p;
min = MAXIM;
scanf( "%ld %ld", &n, &k );
for( i=1; i<=n; i++ )
{
scanf( "%d", &sir[i] );
if( sir[i] < min )
{
pozmin = i;
min = sir[i];
}
if( (i-p+1)%k == 0 )
{
if( min > max )
{
q = p;
max = min;
}
p = pozmin +1;
min = MAXIM;
for( j=p; j<= i; j++ )
if( sir[j] < min )
{
min = sir[j];
pozmin = j;
}
}
}
fclose( stdin );
freopen( "secventa.out", "wt", stdout );
printf( "%ld %ld %d\n", q, q+k-1, max );
fclose( stdout );
return 0;
}