Pagini recente » Cod sursa (job #1511550) | Cod sursa (job #491251) | Clasament dan_barbilian_2011 | Cod sursa (job #561907) | Cod sursa (job #2869736)
#include <fstream>
#include <deque>
using namespace std;
const int N = 500000;
int v[N + 1];
deque<pair<int, int>> deq; // {valoare, pozitia}
void insert_elem(int valoare, int pozitie) {
while (!deq.empty() && deq.back().first >= valoare) {
deq.pop_back();
}
deq.push_back({valoare, pozitie});
}
int main() {
ifstream cin("secventa.in");
ofstream cout("secventa.out");
// citire
int n, k; cin >> n >> k;
for (int i = 0; i < n; i++) {
cin >> v[i];
}
// primele k elemente
for (int i = 0; i < k; i++) {
insert_elem(i);
}
int maxim = deq.front().first;
int dr = k;
for (int i = k; i < n; i++) {
if (deq.front().second == i - k) {
deq.pop_front();
}
insert_elem(v[i], i);
if (deq.front().first > maxim) {
maxim = deq.front().first;
dr = i + 1;
}
}
cout << dr - k + 1 << " " << dr << " " << maxim << "\n";
return 0;
}