Pagini recente » Cod sursa (job #230013) | Cod sursa (job #1983022) | Cod sursa (job #236748) | Cod sursa (job #2281259) | Cod sursa (job #362620)
Cod sursa(job #362620)
#include <stdio.h>
#define Nmax 500003
#define INF 1<<30
struct deque {
int poz; int v;
};
deque Deq[Nmax];
int v[Nmax];
int N, K, i, p, u, sol, solp, solu;
int main() {
FILE *f = fopen("secventa.in", "r");
FILE *g = fopen("secventa.out", "w");
fscanf(f, "%d %d", &N, &K);
for (i = 1; i <= N; i++)
fscanf(f, "%d", &v[i]);
p = 1, u = 0, sol = -INF;
for (i = 1; i <= N; i++) {
while (p <= u && Deq[u].v > v[i]) u--;
u++, Deq[u].poz = i, Deq[u].v = v[i];
if (Deq[p].poz == i-K) p++;
if (i >= K)
if (Deq[p].v > sol)
sol = Deq[p].v, solp = Deq[p].poz, solu = Deq[u].poz;
}
fprintf(g, "%d %d %d", solp, solu, sol);
fclose(f);
fclose(g);
return 0;
}