//#pragma GCC optimize("O3")
//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
// using ll = __int128;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
int main() {
ios_base::sync_with_stdio(false);
cout.tie(nullptr); cin.tie(nullptr);
ll n; cin >> n;
vector<ll> h(n, 0);
for (int i = 0; i < n; i++) cin >> h[i];
vector<vector<ll>> gr(n, vector<ll> (0, 0));
for (int i = 0; i < n; i++) {
ll up = -1e18;
ll down = 1;
for (int j = i + 1; j < n; j++) {
ll x = j - i;
ll y = h[j] - h[i];
if (y * down >= up * x) {
gr[i].push_back(j);
up = y;
down = x;
}
}
}
int q; cin >> q;
for (int i = 0; i < q; i++) {
int l, r; cin >> l >> r; l--; r--;
ll now = l;
ll ans = 0;
while (now != r) {
auto it = upper_bound(gr[now].begin(), gr[now].end(), r);
it--;
ans++;
now = *it;
}
cout << ans << '\n';
}
}