Pagini recente » Cod sursa (job #2978913) | Cod sursa (job #2878078) | Cod sursa (job #2880962) | Cod sursa (job #919476) | Cod sursa (job #877206)
Cod sursa(job #877206)
#include <cstdio>
using namespace std;
int st[500004],poz[500004];
int main()
{
int i, ul,pr,k,n,x,maxim=0,p1,p2;
freopen("secventa.in","r",stdin);
scanf("%d %d %d", &n, &k, &x);
st[1]=x;
poz[1]=1;
ul=pr=1;
for(i=2; i<=k; i++)
{
scanf("%d",&x);
while(pr<=ul && st[ul]>x)
ul--;
ul++;
st[ul]=x;
poz[ul]=i;
}
maxim=st[pr]; p1=poz[pr]; p2=poz[ul];
for(i=k+1; i<=n; i++)
{
scanf("%d",&x);
//printf("%d %d",x,i);
while(pr<=ul && st[ul]>x)
ul--;
ul++;
st[ul]=x;
poz[ul]=i;
while(i-poz[pr]>=k)
pr++;
if(maxim<st[pr]){ maxim=st[pr]; p1=poz[pr]; p2=poz[pr]+k; }
//for(i=pr; i<=ul; i++) printf("%d %d\n",st[i],poz[i]);
//printf("\n");
}
freopen("secventa.out","w",stdout);
printf("%d %d %d \n",p1,p2,maxim);
return 0;
}