Pagini recente » Cod sursa (job #1004661) | Cod sursa (job #2216711) | Cod sursa (job #3131230) | Cod sursa (job #167770) | Cod sursa (job #1844563)
#include <iostream>
#include <fstream>
#include <deque>
#define NMAX 500010
#define INF 1000000000
using namespace std;
ifstream f ("secventa.in");
ofstream g ("secventa.out");
int v[NMAX], n, k, Max = -INF, pos;
deque<int> d;
int main()
{
f>>n>>k;
for (int i = 1; i < k; i++)
{
f>>v[i];
while (!d.empty() && v[d.back()] >= v[i]) d.pop_back();
d.push_back(i);
}
for (int i = k; i <= n; i++)
{
f>> v[i];
if (!d.empty() && d.front() == i - k) d.pop_front();
while (!d.empty() && v[d.back()] >= v[i]) d.pop_back();
d.push_back(i);
if (Max < v[d.front()])
Max = v[d.front()], pos = i;
}
g<<pos - k + 1<<' '<<pos<<' '<<Max;
return 0;
}