Pagini recente » Cod sursa (job #1571932) | Cod sursa (job #910219) | Cod sursa (job #2359636) | Cod sursa (job #2531156) | Cod sursa (job #1288871)
#include <cstdio>
#include <deque>
using namespace std;
const int NMAX = 500010, INF = 0x3f3f3f3f;
int N, K, A[NMAX], Min = -INF, Start = INF, End = INF;
deque<int> D;
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
scanf("%i %i", &N, &K);
for(int i = 1; i <= N; ++ i)
{
scanf("%i", &A[i]);
while(!D.empty() && A[D.back()] >= A[i]) D.pop_back();
D.push_back(i);
while(!D.empty() && D.front() <= i - K) D.pop_front();
if(!D.empty() && i >= K)
{
int CrtMin = A[D.front()];
if(CrtMin > Min) Min = CrtMin, Start = i - K + 1, End = i;
}
}
printf("%i %i %i\n", Start, End, Min);
}