Pagini recente » lets_go_oni | Cod sursa (job #706075) | Cod sursa (job #2198001) | Cod sursa (job #2012236) | Cod sursa (job #2265864)
#include <fstream>
#include <deque>
using namespace std;
int n, k;
deque<int> d;
void solve()
{
ifstream f("secventa.in");
ofstream g("secventa.out");
f >> n >> k;
int a[500005], x, p1 = 1, max = -30001;
for (int i = 1; i < k; i++)
{
f >> x;
a[i] = x;
while (!d.empty() && x <= a[d.back()])
d.pop_back();
d.push_back(i);
}
for (int i = k; i <= n; i++)
{
f >> x;
a[i] = x;
while (!d.empty() && x <= a[d.back()])
d.pop_back();
d.push_back(i);
while (i - d.front() >= k)
d.pop_front();
if (a[d.front()] > max)
{
max = a[d.front()];
p1 = i - k + 1;
}
}
g << p1 << ' ' << p1 + k - 1 << " " << max;
}
int main()
{
solve();
return 0;
}