Pagini recente » Cod sursa (job #1872432) | Cod sursa (job #2131039) | Cod sursa (job #195653) | Cod sursa (job #23282) | Cod sursa (job #2468899)
#include <iostream>
#include <fstream>
#include <deque>
#include <utility>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
const int mini = -1000000000;
int main()
{
deque<pair<int,int>> v;
int n, k, i, val, minimax = mini;
int start, finish = 0;
in >> n >> k;
for(i = 1; i <= n; i++)
{
in >> val;
while(!v.empty() && val <= v.back().first)
v.pop_back();
v.emplace_back(val, i);
//cout << v.front().first << ' ' <<v.front().second << '\n';
if(minimax < v.front().first && i >= k)
{
start = i-k+1;
finish = i;
minimax = v.front().first;
}
//cout << minimax.first << ' ' << minimax.second << ' ' << "start: " << start << ' ' << "finish: " << finish << '\n';
if(v.front().second == i-k+1)
v.pop_front();
}
out << start << ' ' << finish << ' ' << minimax << '\n';
return 0;
}