Pagini recente » Cod sursa (job #2387228) | Cod sursa (job #2291005) | Cod sursa (job #2743422) | Cod sursa (job #522858) | Cod sursa (job #2044361)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
struct elem
{
int x, poz;
};
int n, k, maxim, pozMax;
elem v[500005];
deque<elem> d;
int main()
{
int i;
fin >> n >> k;
for (i=1;i<=k;i++)
{
fin >> v[i].x;
v[i].poz = i;
while (!d.empty() && d.back().x >= v[i].x)
d.pop_back();
d.push_back(v[i]);
}
if (d.front().x > maxim)
{
maxim = d.front().x;
pozMax = 1;
}
for (i=k+1;i<=n;i++)
{
if (d.front().poz < i-k+1)
d.pop_front();
fin >> v[i].x;
v[i].poz = i;
while (!d.empty() && d.back().x >= v[i].x)
d.pop_back();
d.push_back(v[i]);
if (d.front().x > maxim)
{
maxim = d.front().x;
pozMax = i-k+1;
}
}
fout << pozMax << ' ' << pozMax+k-1 << ' ' << maxim << '\n';
return 0;
}