Pagini recente » Cod sursa (job #389224) | Cod sursa (job #2176238) | Cod sursa (job #941029) | Cod sursa (job #947814) | Cod sursa (job #2266624)
#include <cstdio>
#include <deque>
using namespace std;
struct nr
{
int indice,val;
};
int n,k;
nr a[50001];
nr mx;
nr x;
int i1,i2;
int st=1,dr=1;
void citire()
{
scanf("%d %d\n",&n,&k);
mx.val=-300001;
}
void parcurgere()
{
for(int i=1;i<=k;i++)
{
scanf("%d",&x.val);
x.indice=i;
a[++dr]=x;
while(a[dr].val<a[dr-1].val && st<dr)
{
a[dr-1]=a[dr];
dr--;
}
}
for(int i=k+1;i<=n;i++)
{
scanf("%d",&x.val);
x.indice=i;
a[++dr]=x;
int l=a[dr].indice-a[st].indice;
if(l>=k-1)
{
if(a[st].val>=mx.val)
{
mx=a[st];
i1=a[st].indice;
i2=a[dr].indice;
st++;
}
}
while(a[dr].val<a[dr-1].val && st<dr)
{
a[dr-1]=a[dr];
dr--;
}
}
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
citire();
parcurgere();
printf("%d %d %d",i1,i2,mx.val);
return 0;
}