Pagini recente » Cod sursa (job #2698541) | Cod sursa (job #1918317) | Cod sursa (job #1204234) | Cod sursa (job #1280619) | Cod sursa (job #2217093)
#include <fstream>
#include <queue>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
const int MAXN = 5e5;
const int MAXK = 5e5;
int n, k, nr;
deque<pair<int, int>> dq;
int maxim = -30001;
int st, dr;
int main() {
in >> n >> k;
for (int i = 1; i < k; ++ i) {
in >> nr;
while (dq.size() && dq.back().first >= nr) dq.pop_back();
dq.push_back({nr, i});
}
for (int i = k; i <= n; ++ i) {
in >> nr;
while (dq.front().second <= i - k) dq.pop_front();
while (dq.back().first >= nr) dq.pop_back();
dq.push_back({nr, i});
if (dq.front().first > maxim) {
st = i - k + 1;
dr = i;
maxim = dq.front().first;
}
}
out << st << ' ' << dr << ' ' << maxim;
return 0;
}