Pagini recente » Cod sursa (job #3135865) | Cod sursa (job #448718) | Cod sursa (job #1606767) | Cod sursa (job #1138437) | Cod sursa (job #1711030)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
vector<short int> V;
deque<short 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+2, 0);
short maxi = -30001;
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();
D.push_back(i);
while(i - K >= D.front())
D.pop_front();
if(i >= K)
if(V[ D.front() ] > maxi) {
st = i - K + 1;
dr = i;
maxi = V[ D.front() ];
}
}
cout << st << ' ' << dr << ' ' << maxi << '\n';
}