Pagini recente » Cod sursa (job #2534048) | Cod sursa (job #1710280) | Cod sursa (job #2878461) | Cod sursa (job #2203137) | Cod sursa (job #3042184)
#include <fstream>
#include <utility>
#include <deque>
using namespace std;
ifstream cin ("secventa.in");
ofstream cout ("secventa.out");
deque < pair <int , int> > optiuni;
int main ()
{
int lungime_totala , lungime_secventa;
cin >> lungime_totala >> lungime_secventa;
int maxim = -2e9 , inceput = 0 , sfarsit = 0 , valoare;
for (int indice = 1 ; indice <= lungime_totala ; indice++)
{
cin >> valoare;
while (!optiuni.empty() && valoare <= optiuni.back().first)
optiuni.pop_back();
optiuni.push_back(make_pair(valoare , indice));
if (indice >= lungime_secventa && optiuni.front().first > maxim)
maxim = optiuni.front().first , inceput = indice - lungime_secventa + 1 , sfarsit = indice;
if (optiuni.front().second == indice - lungime_secventa + 1)
optiuni.pop_front();
}
cout << inceput << ' ' << sfarsit << ' ' << maxim;
cout.close(); cin.close();
return 0;
}