Pagini recente » Cod sursa (job #712633) | Cod sursa (job #1564171) | Cod sursa (job #49046) | Cod sursa (job #269130) | Cod sursa (job #601462)
Cod sursa(job #601462)
#include <fstream>
using namespace std;
#define inf (1 << 30)
#define maxN 500005
int A[maxN], D[maxN];
int sol = - inf, poz, pozf;
int main()
{
ifstream f ("secventa.in");
ofstream g ("secventa.out");
int N, K;
f >> N >> K;
int st = 1, dr = 0;
for (int i = 1; i <= N; ++ i)
{
f >> A[i];
if (st <= dr && D[st] <= i - K) ++ st;
while (st <= dr && A[D[dr]] > A[i]) -- dr;
D[++ dr] = i;
if (i >= K && sol < A[D[st]])
{
poz = i - K + 1;
pozf = i;
sol = A[D[st]];
}
}
g << poz << " " << pozf << " " << sol;
return 0;
}