#include <bits/stdc++.h>
#define MOD 1000000007LL
using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int n,q;
int v[500000];
int w[500000];
int dp[513][100005];
int ans=0;
int lm=0;
int nm;

void dfs(int pos,int cv,int cw){
	if(pos<=nm){
		ans=max(ans,dp[pos][lm-cw]+cv);
		return;
	}
	dfs(pos/2,cv,cw);
	if(cw+w[pos]<=lm){
		dfs(pos/2,cv+v[pos],cw+w[pos]);
	}
}

int main(void){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld%lld",&v[i],&w[i]);
	}
	nm=min(512,n);
	for(int i=1;i<=nm;i++){
		int p=i/2;
		for(int j=0;j<=100000;j++){
			dp[i][j]=max(dp[i][j],dp[p][j]);
			if(j+w[i]<=100000){
				dp[i][j+w[i]]=max(dp[i][j+w[i]],dp[p][j]+v[i]);
			}
		}
		for(int j=1;j<=100000;j++){
			dp[i][j]=max(dp[i][j],dp[i][j-1]);
		}
	}
	scanf("%d",&q);
	for(int i=0;i<q;i++){
		int a;
		scanf("%d%d",&a,&lm);
		ans=0;
		dfs(a,0,0);
		printf("%d\n",ans);
	}
	return 0;
}
