Pagini recente » Cod sursa (job #1716434) | Cod sursa (job #2865622) | Cod sursa (job #599940) | Cod sursa (job #207704) | Cod sursa (job #2446536)
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#define NRMIN -30001
using namespace std;
struct nrInVec
{
int nr;
int pos;
nrInVec(int x, int i) : nr(x), pos(i) {}
};
bool operator< (nrInVec x, nrInVec y)
{
return x.nr > y.nr;
}
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
priority_queue<nrInVec> heap;
int n, k;
scanf("%d", &n);
scanf("%d", &k);
for (int i = 1; i < k; ++i)
{
int x;
scanf("%d", &x);
heap.push(nrInVec(x, i));
}
int maximum = NRMIN;
int pos = -1;
for (int i = k; i <= n; ++i)
{
int x;
scanf("%d", &x);
heap.push(nrInVec(x, i));
if (heap.top().nr > maximum)
{
maximum = heap.top().nr;
pos = i - k + 1;
}
while (heap.top().pos <= i - k + 1)
heap.pop();
}
printf("%d %d %d", pos, pos + k - 1, maximum);
return 0;
}