Pagini recente » Cod sursa (job #1135189) | Cod sursa (job #2649216) | Cod sursa (job #601879) | Cod sursa (job #540046) | Cod sursa (job #544714)
Cod sursa(job #544714)
#include<iostream.h>
#include<fstream.h>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int a[5000001],deque[5000001];
int n,k,i,front,st,max,back;
int main()
{
front=1;
back=1;
max=-123456789;
f>>n>>k;
for (i=1;i<=n;i++)
{
f>>a[i];
while (front<=back && a[i]<=a[deque[back]]) --back;
deque[++back]=i;
if (i>=k)
{
if (max<a[deque[front]])
{
max=a[deque[front]];
st=i;
}
}
if (i>=k)
{
while (deque[front]==i-k+1 && front<=back) front++;
}
}
g<<st-k+1<<" "<<st<<" "<<max;
f.close();
g.close();
return 0;
}