Pagini recente » Cod sursa (job #383134) | Cod sursa (job #223453) | Cod sursa (job #356388) | Cod sursa (job #2998579) | Cod sursa (job #1052823)
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <utility>
using namespace std;
int main()
{
ifstream fin("secventa.in", ios::in);
ofstream out("secventa.out", ios::out);
unsigned int n, k;
string line;
{
getline(fin, line);
istringstream ss(line);
ss >> n >> k;
}
getline(fin, line);
istringstream in(line);
vector<pair<int, unsigned int>> dq(n);
auto b = 0u, e =0u;
for (auto i = 0u; i < k; ++i) {
int v = 0;
in >> v;
while (e>b && v < dq[e-1].first) --e;
dq[e++] = make_pair(v, i);
}
auto ans = make_pair(dq[b].first, k);
for (auto i = k; i < n; ++i) {
int v = 0;
in >> v;
if (dq[b].second + k <= i) ++b;
while (e>b && v < dq[e-1].first) --e;
dq[e++] = make_pair(v, i);
if (ans.first < dq[b].first) ans = make_pair(dq[b].first, i+1);
}
out << ans.second+1-k << ' ' << ans.second << ' ' << ans.first << endl;
out.close();
return 0;
}