Pagini recente » Cod sursa (job #686546) | Cod sursa (job #453459) | Cod sursa (job #552138) | Cod sursa (job #1212718) | Cod sursa (job #2938185)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, k;
int a[500001];
deque <int> d;
void citire()
{
fin >> n >> k;
for(int i = 0; i < n; ++i)
fin >> a[i];
}
void rezolvare()
{
int st, fin, vmax = -30001;
for(int i = 0; i < n; ++i)
{
while(!d.empty() && a[i] < a[d.back()])
d.pop_back();
d.push_back(i);
if(d.front() <= i - k)
d.pop_front();
if(i >= k - 1)
{
if(a[d.front()] > vmax)
{
vmax = a[d.front()];
st = i - k + 2;
fin = i;
}
}
}
fout << st + 1 << ' ' << fin + 1 << ' ' << vmax;
}
int main()
{
citire();
rezolvare();
return 0;
}