Pagini recente » Cod sursa (job #1621388) | Cod sursa (job #2068631) | Statistici Telcean (tbi1233) | Cod sursa (job #713484) | Cod sursa (job #1374232)
#include <cstdio>
#define MAX 500000
#define INF 30000
using namespace std;
int a[MAX];
int coadaD[MAX];
int main()
{
FILE *in = fopen("secventa.in", "r");
FILE *out = fopen("secventa.out", "w");
int n, k, i;
fscanf(in, "%d %d", &n, &k);
for (i = 0; i < n; i++) {
fscanf(in, "%d", &a[i]);
}
int minim = -INF;
int minStart, minStop;
int Front = 1, Back = 0;
for (i = 0; i < n; i++) {
while (Front <= Back && a[i] < a[coadaD[Back]])
Back--;
coadaD[++Back] = i;
if (coadaD[Front] == i - k)
Front++;
if (i + 1 >= k && a[coadaD[Front]] > minim) {
minim = a[coadaD[Front]];
minStart = coadaD[Front];
minStop = minStart + k - 1;
}
}
fprintf(out, "%d %d %d", minStart + 1, minStop + 1, minim);
fclose(in);
fclose(out);
return 0;
}