Pagini recente » Cod sursa (job #612575) | Cod sursa (job #921213) | Cod sursa (job #3185190) | Cod sursa (job #1173077) | Cod sursa (job #1441216)
#include <deque>
#include <cstdio>
using namespace std;
const int dmax = 500003;
deque < short > D;
short a[dmax];
int main(){
freopen ("secventa.in", "r", stdin);
freopen ("secventa.out", "w", stdout);
int N, K, start, end, worst = -dmax;
scanf ("%d%d", &N, &K);
for (int i = 1; i <= N; i++)
scanf ("%hd", &a[i]);
for (int i = 1; i <= N; i++){
while ( !D.empty() && a[i] <= a[D.back()]) D.pop_back();
D.push_back(i);
if (D.front() == i - K ) D.pop_front();
if (i >= K){
if (a[D.front()] > worst) worst = a[D.front()], start = i - K + 1 , end = i;;
}
}
printf ("%d %d %d", start, end, worst);
return 0;
}