Pagini recente » Cod sursa (job #430077) | Cod sursa (job #843755) | Cod sursa (job #405816) | Cod sursa (job #2467906) | Cod sursa (job #1711014)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
vector<int> V;
deque<int> D;
int N, K;
int main()
{
freopen("deque.in", "rt", stdin);
freopen("deque.out", "wt", stdout);
scanf("%d%d", &N, &K);
V.assign(N+2, 0);
int maxi = -999999999, st, dr;
for(int i = 1; i <= N; ++i) {
scanf("%d", &V[i]);
while(!D.empty() && V[i] <= V[ D.back() ])
D.pop_back();
D.push_back(i);
if(i - K == D.front())
D.pop_front();
if(i >= K)
if(V[ D.front() ] > maxi) {
st = D.front();
dr = i;
maxi = V[ D.front() ];
}
}
cout << st << ' ' << dr << ' ' << maxi << '\n';
}