/*
Author: Nguyen Nhut Truong
From Chuyen Tien Giang High School For The Gifed
*/
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define start signed main
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define il pair<int,ll>
#define ii pair<int,int>
#define len(s) (int)s.size()
#define all(s) (s).begin(),(s).end()
#define OpenFile(Name) if (fopen(Name".inp","r")) freopen(Name".inp","r",stdin),freopen(Name".out","w",stdout);
#define MASK(x) ((1LL)<<(x))
#define Bit(x,i) (((x)>>(i))&1)
#define Countbit(x) __builtin_popcountll(x)
typedef long long ll;
typedef long double ld;
int dx[]={1,-1,0,0,-1,1,1,-1};
int dy[]={0,0,1,-1,-1,-1,1,1};
template <class C> bool Minimize(C &a, C b) { if (a>b) { a=b; return true; } return false;}
template <class C> bool Maximize(C &a, C b) { if (a<b) { a=b; return true; } return false;}
inline ll add(ll a,ll b,ll c) { return (a+b)%c; };
inline ll sub(ll a,ll b,ll c) { return (a-b+c)%c; };
inline ll mul(ll a,ll b,ll c) { return ((a%c)*(b%c))%c; };
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll l,ll r){
assert(l<=r);
return l+rd()%(r-l+1);
}
void MakeInp() {
ofstream cout("Task.inp");
cout.close();
}
/// Constant Limit
const int N=1e4+5,M=1e3+5,INF=1e9,lim=1e6;
const int block=448,base=31;
ll Mod=1e9+7,Mod_base=1777777777,LNF=1e18;
///____________________________________________________________________________________________________________________________
int n,q,w[N],c[N];
int dp[N][105];
int mask[N];
int ans[10*N];
vector<int> p[20];
struct cd{
int l,r,w,id;
};
vector <cd> query[N];
void get(int l,int r,int lv)
{
if(l>r || l==r) return ;
int mid=(r+l)>>1;
for(int i=mid+1;i<=r;i++) mask[i]|=(1<<lv);
p[lv].push_back(mid);
get(l,mid,lv+1);
get(mid+1,r,lv+1);
}
void DnC(int l,int r) {
if(l>r || l==r) return;
for (int i=l;i<=r;i++) memset(dp[i],0,sizeof dp[i]);
int mid=(r+l)>>1;
for(int j=w[mid];j<=100;j++) dp[mid][j]=c[mid];
for (int i=mid-1;i>=l;i--)
for (int j=1;j<=100;j++) {
if(j>=w[i]) Maximize(dp[i][j],dp[i+1][j-w[i]]+c[i]);
Maximize(dp[i][j],dp[i][j-1]);
Maximize(dp[i][j],dp[i+1][j]);
}
for(int j=w[mid+1];j<=100;j++) dp[mid+1][j]=c[mid+1];
for (int i=mid+2;i<=r;i++)
for (int j=1;j<=100;j++) {
if(j >= w[i]) Maximize(dp[i][j],dp[i-1][j-w[i]]+c[i]);
Maximize(dp[i][j],dp[i][j-1]);
Maximize(dp[i][j],dp[i-1][j]);
}
for(cd i:query[mid]) {
for (int j=0;j<=i.w;j++)
ans[i.id]=max(ans[i.id] ,dp[i.r][i.w-j]+dp[i.l][j]);
}
DnC(l,mid);
DnC(mid+1,r);
}
start() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
OpenFile("TASK");
cin>>n;
for (int i=1;i<=n;i++) cin>>w[i]>>c[i];
get(1,n,0);
cin>>q;
for(int i=1;i<=q;i++) {
cd t;
cin>>t.l>>t.r>>t.w;
t.id=i;
if(t.l==t.r) {
if(w[t.l]<=t.w) ans[i]=c[t.l];
} else {
int id=__builtin_ctz(mask[t.l]^mask[t.r]);
int mid=*lower_bound(all(p[id]),t.l);
query[mid].push_back(t);
}
}
DnC(1,n);
for (int i=1;i<=q;i++) cout << ans[i] << '\n';
//cerr<<"\nBien dich thanh cong\nTime: "<<(1.0*clock()/CLOCKS_PER_SEC)<<" s\n";
return 0;
}
LyoKICAgIEF1dGhvcjogTmd1eWVuIE5odXQgVHJ1b25nCiAgICBGcm9tIENodXllbiBUaWVuIEdpYW5nIEhpZ2ggU2Nob29sIEZvciBUaGUgR2lmZWQKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHN0YXJ0IHNpZ25lZCBtYWluCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBpbCBwYWlyPGludCxsbD4KI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgbGVuKHMpIChpbnQpcy5zaXplKCkKI2RlZmluZSBhbGwocykgKHMpLmJlZ2luKCksKHMpLmVuZCgpCiNkZWZpbmUgT3BlbkZpbGUoTmFtZSkgaWYgKGZvcGVuKE5hbWUiLmlucCIsInIiKSkgZnJlb3BlbihOYW1lIi5pbnAiLCJyIixzdGRpbiksZnJlb3BlbihOYW1lIi5vdXQiLCJ3IixzdGRvdXQpOwoKI2RlZmluZSBNQVNLKHgpICgoMUxMKTw8KHgpKQojZGVmaW5lIEJpdCh4LGkpICgoKHgpPj4oaSkpJjEpCiNkZWZpbmUgQ291bnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50bGwoeCkKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwoKaW50IGR4W109ezEsLTEsMCwwLC0xLDEsMSwtMX07CmludCBkeVtdPXswLDAsMSwtMSwtMSwtMSwxLDF9OwoKdGVtcGxhdGUgPGNsYXNzIEM+IGJvb2wgTWluaW1pemUoQyAmYSwgQyBiKSB7IGlmIChhPmIpIHsgYT1iOyByZXR1cm4gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7fQp0ZW1wbGF0ZSA8Y2xhc3MgQz4gYm9vbCBNYXhpbWl6ZShDICZhLCBDIGIpIHsgaWYgKGE8YikgeyBhPWI7IHJldHVybiB0cnVlOyB9IHJldHVybiBmYWxzZTt9CgppbmxpbmUgbGwgYWRkKGxsIGEsbGwgYixsbCBjKSB7IHJldHVybiAoYStiKSVjOyB9OwppbmxpbmUgbGwgc3ViKGxsIGEsbGwgYixsbCBjKSB7IHJldHVybiAoYS1iK2MpJWM7IH07CmlubGluZSBsbCBtdWwobGwgYSxsbCBiLGxsIGMpIHsgcmV0dXJuICgoYSVjKSooYiVjKSklYzsgfTsKCm10MTk5MzdfNjQgcmQoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmxsIHJhbmQobGwgbCxsbCByKXsKICAgIGFzc2VydChsPD1yKTsKICAgIHJldHVybiBsK3JkKCklKHItbCsxKTsKfQoKdm9pZCBNYWtlSW5wKCkgewogICAgb2ZzdHJlYW0gY291dCgiVGFzay5pbnAiKTsKCiAgICBjb3V0LmNsb3NlKCk7Cn0KCi8vLyBDb25zdGFudCBMaW1pdAoKY29uc3QgaW50IE49MWU0KzUsTT0xZTMrNSxJTkY9MWU5LGxpbT0xZTY7CmNvbnN0IGludCBibG9jaz00NDgsYmFzZT0zMTsKCmxsIE1vZD0xZTkrNyxNb2RfYmFzZT0xNzc3Nzc3Nzc3LExORj0xZTE4OwoKLy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKaW50IG4scSx3W05dLGNbTl07CmludCBkcFtOXVsxMDVdOwoKaW50IG1hc2tbTl07CmludCBhbnNbMTAqTl07Cgp2ZWN0b3I8aW50PiBwWzIwXTsKCnN0cnVjdCBjZHsKICAgIGludCBsLHIsdyxpZDsKfTsKdmVjdG9yIDxjZD4gcXVlcnlbTl07Cgp2b2lkIGdldChpbnQgbCxpbnQgcixpbnQgbHYpCnsKICAgIGlmKGw+ciB8fCBsPT1yKSByZXR1cm4gOwoKICAgIGludCBtaWQ9KHIrbCk+PjE7CgogICAgZm9yKGludCBpPW1pZCsxO2k8PXI7aSsrKSBtYXNrW2ldfD0oMTw8bHYpOwoKICAgIHBbbHZdLnB1c2hfYmFjayhtaWQpOwogICAgZ2V0KGwsbWlkLGx2KzEpOwogICAgZ2V0KG1pZCsxLHIsbHYrMSk7Cn0KCnZvaWQgRG5DKGludCBsLGludCByKSB7CiAgICBpZihsPnIgfHwgbD09cikgcmV0dXJuOwoKICAgIGZvciAoaW50IGk9bDtpPD1yO2krKykgbWVtc2V0KGRwW2ldLDAsc2l6ZW9mIGRwW2ldKTsKCiAgICBpbnQgbWlkPShyK2wpPj4xOwogICAgZm9yKGludCBqPXdbbWlkXTtqPD0xMDA7aisrKSBkcFttaWRdW2pdPWNbbWlkXTsKCiAgICBmb3IgKGludCBpPW1pZC0xO2k+PWw7aS0tKQogICAgZm9yIChpbnQgaj0xO2o8PTEwMDtqKyspIHsKICAgICAgICBpZihqPj13W2ldKSBNYXhpbWl6ZShkcFtpXVtqXSxkcFtpKzFdW2otd1tpXV0rY1tpXSk7CiAgICAgICAgTWF4aW1pemUoZHBbaV1bal0sZHBbaV1bai0xXSk7CiAgICAgICAgTWF4aW1pemUoZHBbaV1bal0sZHBbaSsxXVtqXSk7CiAgICB9CgogICAgZm9yKGludCBqPXdbbWlkKzFdO2o8PTEwMDtqKyspIGRwW21pZCsxXVtqXT1jW21pZCsxXTsKCiAgICBmb3IgKGludCBpPW1pZCsyO2k8PXI7aSsrKQogICAgZm9yIChpbnQgaj0xO2o8PTEwMDtqKyspIHsKICAgICAgICBpZihqID49IHdbaV0pIE1heGltaXplKGRwW2ldW2pdLGRwW2ktMV1bai13W2ldXStjW2ldKTsKICAgICAgICBNYXhpbWl6ZShkcFtpXVtqXSxkcFtpXVtqLTFdKTsKICAgICAgICBNYXhpbWl6ZShkcFtpXVtqXSxkcFtpLTFdW2pdKTsKICAgIH0KCiAgICBmb3IoY2QgaTpxdWVyeVttaWRdKSB7CiAgICAgICAgZm9yIChpbnQgaj0wO2o8PWkudztqKyspCiAgICAgICAgYW5zW2kuaWRdPW1heChhbnNbaS5pZF0gLGRwW2kucl1baS53LWpdK2RwW2kubF1bal0pOwogICAgfQoKICAgIERuQyhsLG1pZCk7CiAgICBEbkMobWlkKzEscik7Cn0KCgpzdGFydCgpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIE9wZW5GaWxlKCJUQVNLIik7CgogICAgY2luPj5uOwoKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgY2luPj53W2ldPj5jW2ldOwogICAgZ2V0KDEsbiwwKTsKCiAgICBjaW4+PnE7CiAgICBmb3IoaW50IGk9MTtpPD1xO2krKykgewogICAgICAgIGNkIHQ7CiAgICAgICAgY2luPj50Lmw+PnQucj4+dC53OwoKICAgICAgICB0LmlkPWk7CiAgICAgICAgaWYodC5sPT10LnIpIHsKICAgICAgICAgICAgaWYod1t0LmxdPD10LncpIGFuc1tpXT1jW3QubF07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW50IGlkPV9fYnVpbHRpbl9jdHoobWFza1t0LmxdXm1hc2tbdC5yXSk7CiAgICAgICAgICAgIGludCBtaWQ9Kmxvd2VyX2JvdW5kKGFsbChwW2lkXSksdC5sKTsKICAgICAgICAgICAgcXVlcnlbbWlkXS5wdXNoX2JhY2sodCk7CiAgICAgICAgfQogICAgfQoKICAgIERuQygxLG4pOwoKICAgIGZvciAoaW50IGk9MTtpPD1xO2krKykgY291dCA8PCBhbnNbaV0gPDwgJ1xuJzsKCgoKCiAgICAvL2NlcnI8PCJcbkJpZW4gZGljaCB0aGFuaCBjb25nXG5UaW1lOiAiPDwoMS4wKmNsb2NrKCkvQ0xPQ0tTX1BFUl9TRUMpPDwiIHNcbiI7CiAgICByZXR1cm4gMDsKfQo=