Pagini recente » Borderou de evaluare (job #2566936) | Borderou de evaluare (job #1009712) | Borderou de evaluare (job #2312805) | Cod sursa (job #1024457) | Cod sursa (job #2461088)
#include <iostream>
#include <fstream>
#include <deque>
#include <utility>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int main()
{
deque<pair<int,int>> v;
int n, k, i, val;
int minimax = -50000, start, finish;
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.back().first << '\n';
if(v.front().second == i-k+1)
{
minimax = max(minimax, v.front().first);
start = v.front().second;
finish = start+k-1;
v.pop_front();
}
}
out << start << ' ' << finish << ' ' << minimax << '\n';
return 0;
}