Pagini recente » Cod sursa (job #513803) | Cod sursa (job #3209190) | Cod sursa (job #2755691) | Cod sursa (job #2527349) | Cod sursa (job #2161895)
#include <fstream>
#include <deque>
#include <climits>
#include <iostream>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque <int> d;
int n,k,i,maxim=INT_MIN,poz,v[500001];
int main()
{
f>>n>>k;
for(i=1; i<=n; i++)f>>v[i];
for(i=1; i<=k; i++)
{
while(d.size()>=1&&v[d.front()]>=v[i])
{
d.pop_front();
}
d.push_front(i);
}
if(v[d.back()]>maxim)
{
maxim=v[d.back()];
poz=k;
}
for(i=k+1; i<=n; i++)
{
while(d.size()>=1&&d.back()<=i-k)d.pop_back();
while(d.size()>=1&&v[d.front()]>=v[i])
{
d.pop_front();
}
d.push_front(i);
if(v[d.back()]>maxim)
{
maxim=v[d.back()];
poz=i;
}
}
g<<poz-k+1<<" "<<poz<<" "<<maxim;
return 0;
}