Pagini recente » Cod sursa (job #1603665) | Cod sursa (job #621829) | Cod sursa (job #2798645) | Cod sursa (job #2268746) | Cod sursa (job #2783884)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> v;
int nums[500005];
int n, k;
int ans;
int main()
{
fin >> n >> k;
for (int i = 0; i < n; i++)
{
fin >> nums[i];
}
int down, up;
down = 0;
up = k - 1;
for (int i = down; i <= up; i++)
{
int curr = nums[i];
while (!v.empty() && v.back() > curr)
{
v.pop_back();
}
v.push_back(curr);
}
while (up < n)
{
if (ans < v.front())
{
ans = v.front();
}
if (nums[down] == v.front())
{
v.pop_front();
}
up++;
down++;
int curr = nums[up];
while (!v.empty() && v.back() > curr)
{
v.pop_back();
}
v.push_back(curr);
}
fout << down << ' ' << up << ' ' << ans;
return 0;
}