Pagini recente » Cod sursa (job #1961489) | Cod sursa (job #210840) | Cod sursa (job #1900596) | Istoria paginii runda/pregatire-oji-2012-runda1/clasament | Cod sursa (job #1997989)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int x[500001], Deque[500001];
int n, k, i, Max, Front, Back, start, stop;
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
fin>>n>>k;
for(i=1; i<=n; ++i) fin>>x[i];
Max=INT_MIN;
Front=1; Back=0;
for(i=1; i<=n; ++i)
{
while(Front<=Back && x[i]<=x[Deque[Back]]) --Back;
Deque[++Back]=i;
if(Deque[Front]==i-k) ++Front;
if(i>=k)
{
if(x[Deque[Front]]>Max)
{
start=i-k+1;
stop=i;
Max=x[Deque[Front]];
}
}
}
fout<<start<<" "<<stop<<" "<<Max<<"\n";
return 0;
}