Pagini recente » Cod sursa (job #2893299) | Cod sursa (job #71214) | Cod sursa (job #3136169) | Cod sursa (job #2171714) | Cod sursa (job #2681556)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int n, k, v[500001], mx = -30001, p1, p2;
deque <int> d;
int main()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (int i = 1; i <= n; i++)
{
while (!d.empty() && v[d.back()] >= v[i]) d.pop_back();
d.push_back (i);
if (d.front() == i - k) d.pop_front();
if (i >= k)
{
if (v[d.front()] > mx)
{
mx = v[d.front()];
p1 = d.front();
p2 = i;
}
else if (v[d.front()] == mx)
{
if (d.front() < p1)
{
p1 = d.front();
p2 = i;
}
else if (d.front() == p1 && i < p2)
{
p1 = d.front();
p2 = i;
}
}
}
}
fout << p1 << " " << p2 << " " << mx;
}