Pagini recente » Cod sursa (job #2177026) | Cod sursa (job #2630911) | Cod sursa (job #418004) | Cod sursa (job #1543051) | Cod sursa (job #403660)
Cod sursa(job #403660)
#include<stdio.h>
#include<deque>
#define Nmx 500002
using namespace std;
int n,k,a[Nmx];
deque <int> D;
void citire()
{
int max=-5000213,pz,pzf,dm=100,st=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i)
scanf("%d",&a[i]);
st=1;
for(int i=1;i<=n;++i)
{
while(D.size()>0&&D.back()>a[i])
D.pop_back();
D.push_back(a[i]);
if(i>=k)
{
if(i>k)
if(D.front()==a[i-k])
D.pop_front();
if(max<D.front())
{
max=D.front();
int j=i-k,dist=k;
while(a[j]>=max&&j>=1)
--j,dist++;
dm=dist;
pz=j+1;
pzf=i;
}
else if(max==D.front())
{
int j=i-k,dist=k;
while(a[j]>=max&&j>=1)
--j,dist++;
if(dm<dist)
{
dm=dist;
pz=j+1;
pzf=i;
}
}
}
}
printf("%d %d %d\n",pz,pzf,max);
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
citire();
return 0;
}