Pagini recente » Cod sursa (job #993454) | Cod sursa (job #1872828) | Cod sursa (job #3031828) | Cod sursa (job #2104511) | Cod sursa (job #2676295)
#include <fstream>
#include <deque>
#include <stack>
using namespace std;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
deque < int > coada;
const int NMAX=500005;
int v[NMAX], st1[NMAX], dr[NMAX];
int main()
{
int n, k, maxx = 0, stanga = 0, dreapta = 0;
cin >> n >> k;
for(int i = 1; i <= n; i ++)
{
cin >> v[i];
if(i >= k )
{
if(i >= k && v[i - k] == coada.front())
coada.pop_front();
while(!coada.empty() && v[i] < coada.back())
coada.pop_back();
coada.push_back(v[i]);
if(coada.front() > maxx)
{
maxx = coada.front();
dreapta = i;
stanga = i - k + 1;
}
}
else
{
while(!coada.empty() && v[i] < coada.back())
coada.pop_back();
coada.push_back(v[i]);
}
}
cout << stanga << " " << dreapta << " " << maxx;
return 0;
}