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