Pagini recente » Cod sursa (job #988073) | Cod sursa (job #421342) | Cod sursa (job #1117602) | Cod sursa (job #261973) | Cod sursa (job #2447191)
#include <bits/stdc++.h>
using namespace std;
int a[500005],q[500005];
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k,st = 1,dr = 0,ans = -30000000,poz;
fin >> n >> k;
for (int i = 1;i<= n;i++)
fin >> a[i];
for (int i = 1;i < k;i++) {
while(dr >= st && a[i] <= a[q[dr]])
dr--;
dr++;
q[dr] = i;
}
for (int i = k;i <= n;i++) {
while(st <= dr && a[i] <= a[q[dr]])
dr--;
dr++;
q[dr] = i;
while (st <= dr && q[st] < i - k + 1)
st++;
if (a[q[st]] > ans) {
ans = a[q[st]];
poz = i;
}
}
fout << poz - k + 1 << " " << poz << " " << ans;
return 0;
}