Pagini recente » Cod sursa (job #895365) | Cod sursa (job #3227511) | Cod sursa (job #2295292) | Cod sursa (job #109532) | Cod sursa (job #362628)
Cod sursa(job #362628)
#include <stdio.h>
#define Nmax 500002
#define INF 1 << 30
int A[Nmax], Deq[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);
p = 1, u = 0, sol = -INF;
for (i = 1; i <= n; i++) {
fscanf(f, "%d", &A[i]);
while (p <= u && A[i] <= A[ Deq[u] ]) u--;
Deq[++u] = i;
if (Deq[p] == i-k) p++;
if (i >= k && A[ Deq[p] ] > sol)
sol = A[ Deq[p] ], solp = Deq[p], solu = Deq[u];
}
fprintf(g, "%d %d %d", solp, solu, sol);
fclose(f);
fclose(g);
return 0;
}