Pagini recente » Cod sursa (job #3194830) | Cod sursa (job #2848181) | Cod sursa (job #1855646) | Cod sursa (job #1686703) | Cod sursa (job #2569503)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k, a[500009], Deque[500008];
void Read()
{
int Front = 0;
int Back = 0;
int i,j,lf, rg, maxim = 0;
fin>>n>>k;
for( i = 1; i<=n; ++i)
fin>>a[i];
for(i=1; i<=n; ++i)
{
while(Front<= Back && a[i] <= a[Deque[Front]])
Back--;
Deque[++Back] = i;
if(Deque[Front] <= i-k)
Front++;
if(i>=k)
{
if(a[Deque[Front]] > maxim)
{
maxim = a[Deque[Front]];
rg = i;
lf = i-k+1;
}
}
}
fout<<lf<<" "<<rg<<" "<<maxim;
}
int main()
{
Read();
return 0;
}