Pagini recente » Cod sursa (job #2458569) | Cod sursa (job #2455852) | Cod sursa (job #2187931) | Atasamentele paginii olimpici | Cod sursa (job #2455853)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, k, currentNr;
deque<pair<int, int>> deq;
pair<int, int> bazaMaxi;
int main()
{
fin >> n >> k;
bazaMaxi.first = bazaMaxi.second = 0; //not sure this is necessary
for (int i = 0; i < n; ++i) {
fin >> currentNr;
while (!deq.empty() && currentNr < deq.back().first) {
deq.pop_back();
}
deq.push_back(make_pair(currentNr, i));
if (i - deq.front().second == k) {
deq.pop_front();
}
if (i >= k - 1 && deq.front().first >= bazaMaxi.first)
bazaMaxi = deq.front();
}
fout << bazaMaxi.second + 1 << " " << bazaMaxi.second + k << " " << bazaMaxi.first << "\n";
return 0;
}