#include <bits/stdc++.h>
using namespace std;
#define sigma signed
#define ll long long
#define endl '\n'
#define fi first
#define se second
#define all(x) x.begin(),x.end()
#define bit(i, x) (((x)>>(i))&(1))
const int N = 1e5 + 5;
long long node[4 * N], lazy[4 * N];
pair<ll, int> a[N];
int n, m;
struct query {
int val, pos, tt;
} q[N];
bool cmp(query a, query b) {
return a.val > b.val;
}
bool cmpp(pair<int, int> a, pair<int, int> b) {
if(a.fi != b.fi) return a.fi < b.fi;
return a.se > b.se;
}
int ans[N];
void push(int id) {
if(lazy[id] == 0) return;
lazy[id << 1] += lazy[id];
node[id << 1] += lazy[id];
lazy[id << 1 | 1] += lazy[id];
node[id << 1 | 1] += lazy[id];
lazy[id] = 0;
}
void update(int id, int l, int r, int x, int y, ll val) {
if(l > y || r < x) return;
if(l >= x && r <= y) {
node[id] += val;
lazy[id] += val;
return;
}
push(id);
int mid = (l + r) >> 1;
update(id << 1, l, mid, x, y, val);
update(id << 1 | 1, mid + 1, r, x, y, val);
}
ll get(int id, int l, int r, int p) {
if(r < p || l > p) return 0;
if(l == p && r == p) return node[id];
push(id);
int mid = (l + r) >> 1;
return get(id << 1, l, mid, p) + get(id << 1 | 1, mid + 1, r, p);
}
sigma main(){
if(fopen("vd.inp", "r")){
freopen("vd.inp", "r", stdin);
freopen("vd.out", "w", stdout);
}
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i].fi, a[i].se = i;
sort(a + 1, a + n + 1, cmpp);
cin >> m;
for(int i = 1; i <= m; i++) {
cin >> q[i].val >> q[i].pos;
q[i].tt = i;
}
a[n + 1] = {9e18, n + 1};
a[0] = {-9e18, 0};
sort(q + 1, q + m + 1, cmp);
for(int i = 1; i <= m; i++) {
int l = 1, r = n, left = 0;
int res = 0;
while(l <= r) {
int mid = (l + r) >> 1;
if(a[mid].fi + get(1, 1, n, mid) <= q[i].pos) l = mid + 1, left = mid;
else r = mid - 1;
}
int right = left + 1;
if(a[right].fi - q[i].pos < -a[left].fi + q[i].pos) {
res = right;
if(right <= n) update(1, 1, n, right, n, -a[right].fi + q[i].pos);
if(left >= 1) update(1, 1, n, 1, left, a[right].fi - q[i].pos);
} else {
res = left;
if(right <= n) update(1, 1, n, right, n, a[left].fi - q[i].pos);
if(left >= 1) update(1, 1, n, 1, left, -a[left].fi + q[i].pos);
}
ans[q[i].tt] = a[res].se;
}
for(int i = 1; i <= m; i++)
cout << ans[i] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgc2lnbWEgc2lnbmVkCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBiaXQoaSwgeCkgKCgoeCk+PihpKSkmKDEpKQpjb25zdCBpbnQgTiA9IDFlNSArIDU7CmxvbmcgbG9uZyBub2RlWzQgKiBOXSwgbGF6eVs0ICogTl07CnBhaXI8bGwsIGludD4gYVtOXTsKaW50IG4sIG07CnN0cnVjdCBxdWVyeSB7CiAgICBpbnQgdmFsLCBwb3MsIHR0Owp9IHFbTl07CmJvb2wgY21wKHF1ZXJ5IGEsIHF1ZXJ5IGIpIHsKICAgIHJldHVybiBhLnZhbCA+IGIudmFsOwp9CmJvb2wgY21wcChwYWlyPGludCwgaW50PiBhLCBwYWlyPGludCwgaW50PiBiKSB7CiAgICBpZihhLmZpICE9IGIuZmkpIHJldHVybiBhLmZpIDwgYi5maTsKICAgIHJldHVybiBhLnNlID4gYi5zZTsKfQppbnQgYW5zW05dOwp2b2lkIHB1c2goaW50IGlkKSB7CiAgICBpZihsYXp5W2lkXSA9PSAwKSByZXR1cm47CiAgICBsYXp5W2lkIDw8IDFdICs9IGxhenlbaWRdOwogICAgbm9kZVtpZCA8PCAxXSArPSBsYXp5W2lkXTsKICAgIGxhenlbaWQgPDwgMSB8IDFdICs9IGxhenlbaWRdOwogICAgbm9kZVtpZCA8PCAxIHwgMV0gKz0gbGF6eVtpZF07CiAgICBsYXp5W2lkXSA9IDA7Cn0Kdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB4LCBpbnQgeSwgbGwgdmFsKSB7CiAgICBpZihsID4geSB8fCByIDwgeCkgcmV0dXJuOwogICAgaWYobCA+PSB4ICYmIHIgPD0geSkgewogICAgICAgIG5vZGVbaWRdICs9IHZhbDsKICAgICAgICBsYXp5W2lkXSArPSB2YWw7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgcHVzaChpZCk7CiAgICBpbnQgbWlkID0gKGwgKyByKSA+PiAxOwogICAgdXBkYXRlKGlkIDw8IDEsIGwsIG1pZCwgeCwgeSwgdmFsKTsKICAgIHVwZGF0ZShpZCA8PCAxIHwgMSwgbWlkICsgMSwgciwgeCwgeSwgdmFsKTsKfQpsbCBnZXQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBwKSB7CiAgICBpZihyIDwgcCB8fCBsID4gcCkgcmV0dXJuIDA7CiAgICBpZihsID09IHAgJiYgciA9PSBwKSByZXR1cm4gbm9kZVtpZF07CiAgICBwdXNoKGlkKTsKICAgIGludCBtaWQgPSAobCArIHIpID4+IDE7CiAgICByZXR1cm4gZ2V0KGlkIDw8IDEsIGwsIG1pZCwgcCkgKyBnZXQoaWQgPDwgMSB8IDEsIG1pZCArIDEsIHIsIHApOwp9CnNpZ21hIG1haW4oKXsKICAgIGlmKGZvcGVuKCJ2ZC5pbnAiLCAiciIpKXsKICAgICAgICBmcmVvcGVuKCJ2ZC5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJ2ZC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXS5maSwgYVtpXS5zZSA9IGk7CiAgICBzb3J0KGEgKyAxLCBhICsgbiArIDEsIGNtcHApOwoKICAgIGNpbiA+PiBtOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBjaW4gPj4gcVtpXS52YWwgPj4gcVtpXS5wb3M7CiAgICAgICAgcVtpXS50dCA9IGk7CiAgICB9CiAgICBhW24gKyAxXSA9IHs5ZTE4LCBuICsgMX07CiAgICBhWzBdID0gey05ZTE4LCAwfTsKICAgIHNvcnQocSArIDEsIHEgKyBtICsgMSwgY21wKTsKCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG07IGkrKykgewogICAgICAgIGludCBsID0gMSwgciA9IG4sIGxlZnQgPSAwOwogICAgICAgIGludCByZXMgPSAwOwogICAgICAgIHdoaWxlKGwgPD0gcikgewogICAgICAgICAgICBpbnQgbWlkID0gKGwgKyByKSA+PiAxOwogICAgICAgICAgICBpZihhW21pZF0uZmkgKyBnZXQoMSwgMSwgbiwgbWlkKSA8PSBxW2ldLnBvcykgbCA9IG1pZCArIDEsIGxlZnQgPSBtaWQ7CiAgICAgICAgICAgIGVsc2UgciA9IG1pZCAtIDE7CiAgICAgICAgfQogICAgICAgIGludCByaWdodCA9IGxlZnQgKyAxOwogICAgICAgIGlmKGFbcmlnaHRdLmZpIC0gcVtpXS5wb3MgPCAtYVtsZWZ0XS5maSArIHFbaV0ucG9zKSB7CiAgICAgICAgICAgIHJlcyA9IHJpZ2h0OwogICAgICAgICAgICBpZihyaWdodCA8PSBuKSB1cGRhdGUoMSwgMSwgbiwgcmlnaHQsIG4sIC1hW3JpZ2h0XS5maSArIHFbaV0ucG9zKTsKICAgICAgICAgICAgaWYobGVmdCA+PSAxKSB1cGRhdGUoMSwgMSwgbiwgMSwgbGVmdCwgYVtyaWdodF0uZmkgLSBxW2ldLnBvcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmVzID0gbGVmdDsKICAgICAgICAgICAgaWYocmlnaHQgPD0gbikgdXBkYXRlKDEsIDEsIG4sIHJpZ2h0LCBuLCBhW2xlZnRdLmZpIC0gcVtpXS5wb3MpOwogICAgICAgICAgICBpZihsZWZ0ID49IDEpIHVwZGF0ZSgxLCAxLCBuLCAxLCBsZWZ0LCAtYVtsZWZ0XS5maSArIHFbaV0ucG9zKTsKICAgICAgICB9CgogICAgICAgIGFuc1txW2ldLnR0XSA9IGFbcmVzXS5zZTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKQogICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQo=