Pagini recente » Monitorul de evaluare | Cod sursa (job #3363278) | Monitorul de evaluare | Cod sursa (job #3363224) | Cod sursa (job #3363242)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
deque <int> dq;
int main ()
{
int n, k, x = -30001, dr, st;
fin >> n >> k;
int v[500001];
for (int i = 1; i<=n; i++) fin >> v[i];
for (int i = 1; i<=n; i++)
{
while (!dq.empty() && v[dq.back()]>v[i])
{
dq.pop_back();
}
dq.push_back(i);
if (dq.front()<=i-k) dq.pop_front();
if (v[dq.front()] > x && i>=k)
{
x = v[dq.front()];
dr = i;
st = i-k+1;
}
}
fout << st << " " << dr << " " << x;
}