Pagini recente » Cod sursa (job #590374) | Borderou de evaluare (job #3146072) | Cod sursa (job #1089629) | Cod sursa (job #245160) | Cod sursa (job #799641)
Cod sursa(job #799641)
# include <cstdio>
# define NMAX 500001
# define MMAX 30001
using namespace std;
FILE * fin = fopen("secventa.in", "r");
FILE * fout = fopen("secventa.out", "w");
int deque[NMAX];
int main()
{
int a[NMAX];
int i, n, k, p, q, poz = 0, pmax;
pmax = - MMAX;
fscanf(fin, "%d %d", &n, &k);
p = 1, q = 0;
for(i = 1; i <= n; ++ i)
{
fscanf(fin, "%d", &a[i]);
while(p <= q && a[i] <= a[deque[q]]) -- q;
deque[++ q] = i;
if(deque[p] == i-k) ++ p;
if(i >= k)
if(pmax < a[deque[p]]) {
pmax = a[deque[p]];
poz = i;
}
}
fprintf(fout, "%d %d %d", poz-k+1, poz, pmax);
return 0;
}