#include <bits/stdc++.h>
using namespace std;
const int maxN = 200010;
struct tl {
  int x, y;
} a[maxN];
int n, m;
int t[maxN * 5 * 2];
vector<int> uni;
vector<int> ke[maxN];
int ans[maxN];
struct tl2 {
  int x, y;
} query[maxN];
void init() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%i%i", &a[i].x, &x);
    a[i].y = a[i].x + x;
    uni.push_back(a[i].x);
    uni.push_back(a[i].y);
  }
  sort(uni.begin(), uni.end());
  m = unique(uni.begin(), uni.end()) - uni.begin();
  for (int i = 0; i < n; i++) {
    a[i].x = lower_bound(uni.begin(), uni.begin() + m, a[i].x) - uni.begin();
    a[i].y = lower_bound(uni.begin(), uni.begin() + m, a[i].y) - uni.begin();
  }
}
void update(int k, int l, int r, int i, int j) {
  if (i > r || j < l) return;
  if (i <= l && r <= j) {
    t[k] = 0;
    return;
  }
  if (t[k] == 0) return;
  int mid = (l + r) >> 1;
  update(k * 2, l, mid, i, j);
  update(k * 2 + 1, mid + 1, r, i, j);
  t[k] = t[k * 2 + 1] + t[k * 2];
}
long long getans(int k, int l, int r, int i, int j) {
  if (i > r || j < l) return 0;
  if (i <= l && r <= j) return t[k];
  if (t[k] == 0) return 0;
  int mid = (l + r) >> 1;
  return getans(k * 2, l, mid, i, j) + getans(k * 2 + 1, mid + 1, r, i, j);
}
void khoitao(int k, int l, int r, int i, int x) {
  if (i > r || i < l) return;
  if (l == r) {
    t[k] += x;
    return;
  }
  int mid = (l + r) >> 1;
  khoitao(k * 2, l, mid, i, x);
  khoitao(k * 2 + 1, mid + 1, r, i, x);
  t[k] = t[k * 2 + 1] + t[k * 2];
}
void xuly() {
  for (int i = 0; i < m - 1; i++) khoitao(1, 0, m, i, uni[i + 1] - uni[i]);
  uni.clear();
  int q;
  cin >> q;
  for (int i = 0; i < q; i++) {
    scanf("%i%i", &query[i].x, &query[i].y);
    query[i].x--;
    query[i].y--;
    ke[query[i].x].push_back(i);
  }
  for (int i = n - 1; i > -1; i--) {
    if (i == 399998) i = i;
    update(1, 0, m, a[i].x, a[i].y - 1);
    for (int j = 0; j < ke[i].size(); j++) {
      ans[ke[i][j]] =
          getans(1, 0, m, a[query[ke[i][j]].x].x, a[query[ke[i][j]].y].x - 1);
    }
  }
  for (int i = 0; i < q; i++) printf("%i\n", ans[i]);
}
int main() {
  init();
  xuly();
  fclose(stdin);
  fclose(stdout);
  return 0;
}
