Pagini recente » Cod sursa (job #1973218) | Cod sursa (job #1277453) | Cod sursa (job #1315980) | Cod sursa (job #1726405) | Cod sursa (job #3273345)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<int> d;
short int v[500005];
int main()
{
int n,k;
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
for(int i=1; i<=k; i++)
{
while(!d.empty()&&v[i]<=v[d.back()])
d.pop_back();
d.push_back(i);
}
long long int nmin=v[d.front()];
int dr=k;
int st=1;
for(int i=k+1; i<=n; i++)
{
while(!d.empty()&&v[i]<=v[d.back()])
d.pop_back();
if(!d.empty()&&d.front()==i-k)
d.pop_front();
d.push_back(i);
if(nmin<v[d.front()])
{
nmin=v[d.front()];
st=i-k+1;
dr=i;
}
}
fout<<st<<' '<<dr<<' '<<nmin<<endl;
return 0;
}