#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define debug prllf("*");
//#define mo 1e9+7
const ll N=1e5+5;
ll n,m,x[N],st[N][20];
int main(){
	scanf("%lld%lld",&n,&m);
	for(ll i=1;i<=n;i++)
		scanf("%lld",&x[i]);
	ll l=1,r=n-m+1;
	for(ll i=1;i<=n;i++){
		while(abs(x[i]-x[l])>abs(x[r+1]-x[i])) l++,r++;
		if(abs(x[i]-x[l])>=abs(x[r]-x[i])) st[i][0]=l;//第m远 
		else st[i][0]=r;
	} 
	for(ll j=1;j<=18;j++)
		for(ll i=1;i<=n;i++)
			st[i][j]=st[st[i][j-1]][j-1];
	ll q,s,c;scanf("%lld",&q);
	for(ll i=1;i<=q;i++){
		scanf("%lld%lld",&s,&c);
		for(ll i=0;i<=18;i++)
			if(c&(1<<i)) s=st[s][i];
		printf("%lld\n",s);
	}
	return 0;
}

相关文章:

  • 2021-12-29
  • 2022-12-23
  • 2021-11-30
  • 2021-11-18
  • 2021-10-29
  • 2022-01-02
猜你喜欢
  • 2021-08-23
  • 2022-01-21
  • 2021-06-02
  • 2021-10-17
  • 2022-01-06
相关资源
相似解决方案