Pagini recente » Cod sursa (job #483289) | Cod sursa (job #3276531) | Cod sursa (job #964807) | Cod sursa (job #3191651) | Cod sursa (job #979970)
Cod sursa(job #979970)
#include <stdio.h>
using namespace std;
int a[1000005][2],t;
long int n,prim,ult,k,pst,psf,baza;
int main()
{
freopen("secventa.in","r",stdin);
scanf("%d %d",&n,&k);
scanf("%d",&a[0][0]);
a[0][1]=1;
for (int i=1;i<k;i++)
{
scanf("%d",&t);
ult++;
a[ult][0]=t; a[ult][1]=i+1;
while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
{
a[ult-1][0]=a[ult][0];
a[ult-1][1]=a[ult][1];
ult--;
}
}
pst=1; psf=k; baza=a[0][0];
for (int i=k;i<n;i++)
{
if (a[prim][1]<i-k+2)
{
prim++;
}
scanf("%d",&t);
ult++;
a[ult][0]=t; a[ult][1]=i+1;
while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
{
a[ult-1][0]=a[ult][0];
a[ult-1][1]=a[ult][1];
ult--;
}
if (baza<a[prim][0])
{
baza=a[prim][0];
pst=i-k+2;
psf=i+1;
}
}
fclose(stdin);
freopen("secventa.out","w",stdout);
printf("%d %d %d",pst,psf,baza);
fclose(stdout);
}