Pagini recente » Cod sursa (job #2045722) | Rating iorgu bardan (iorgu) | Cod sursa (job #1174343) | Cod sursa (job #857682) | Cod sursa (job #1986561)
#include <cstdio>
using namespace std;
int n, k, dq[500002], a[500002];
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%d%d", &n, &k);
int Front = 1, Back = 0, st, dr, Sol = 0;
for(int i = 1; i <= n ; ++i){
scanf("%d", &a[i]);
while(Front <= Back && a[i] <= a[dq[Back]])
--Back;
dq[++Back] = i;
while(Front < Back && i - dq[Front + 1] + 1 >= k) ++Front;
if(i - dq[Front] + 1 >= k){
if(a[dq[Front]] > Sol){
Sol = a[dq[Front]];
st = dq[Front]; dr = i;
}
}
}
printf("%d %d %d", st, dr, Sol);
return 0;
}