Pagini recente » Cod sursa (job #2384897) | Cod sursa (job #1807365) | Cod sursa (job #369195) | Cod sursa (job #3160292) | Cod sursa (job #1052845)
#include <fstream>
#include <vector>
#include <utility>
using namespace std;
int main()
{
ifstream in;
char buffer[4 * 1024 * 1024];
in.rdbuf()->pubsetbuf(buffer, 4 * 1024 * 1024);
in.open("secventa.in", ios::in);
in.sync();
ofstream out("secventa.out", ios::out);
unsigned int n, k;
in >> n >> k;
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;
}