#include<bits/stdc++.h>
#define int long long
using namespace std;
int v[400005],lazy[400005],n,m,a[400005],tmp,l=1,r;
void update(int k)
{
v[k]=max(v[k<<1],v[k<<1|1]);
}
void build(int l,int r,int k)
{
if(l==r)
{
v[k]=a[l];
return;
}
int mid=(l+r)>>1;
build(l,mid,k<<1);
build(mid+1,r,k<<1|1);
update(k);
}
int get_out(int l,int r,int now_l,int now_r,int k)
{
if(l<=now_l&&r>=now_r)
return v[k];
int mid=(now_l+now_r)>>1,a,b;
if(l<=mid)
a=get_out(l,r,now_l,mid,k<<1);
if(r>mid)
b=get_out(l,r,mid+1,now_r,k<<1|1);
return max(a,b);
}
signed main()
{
cin>>n>>r;
for(int i=1;i<=n;i++)
cin>>a[i];
build(1,n,1);
while(r<=n)
{
cout<<get_out(l,r,1,n,1)<<endl;
l++,r++;
}
}
RT,就比如样例,应该输出5 5 4,我却输出5 5 71212945774165888
而且我还把v数组里的数都打印了一遍,建树也没问题啊,难道是get_out的问题?