Pagini recente » Cod sursa (job #59034) | Cod sursa (job #1739458) | Cod sursa (job #2984132) | Cod sursa (job #1482081) | Cod sursa (job #2931972)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k;
int v[500005];
deque <int> q;
int maxim=-100000;
int st;
int dr;
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
for(int i=1; i<=k; i++)
{
while(q.empty()==false && v[i]<v[q.back()])
{
q.pop_back();
}
q.push_back(i);
}
for(int i=k+1; i<=n; i++)
{
while(q.empty()==false && i-q.front()>=k)
{
q.pop_front();
}
while(q.empty()==false && v[i]<v[q.back()])
{
q.pop_back();
}
q.push_back(i);
if(v[q.front()]>maxim)
{
maxim=v[q.front()];
dr=i;
st=dr-k+1;
}
}
fout<<st<<" "<<dr<<" "<<maxim<<'\n';
}