#include <iostream>
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
int N, M;
std::cin >> N;
int *arr{ new int[N] };
int **dp{ new int*[N] };
for (int i = 0; i < N; ++i) std::cin >> arr[i];
for (int i = 0; i < N; ++i) {
dp[i] = new int[N];
std::fill_n(dp[i], N, -1);
}
for (int i = 0; i < N; ++i) dp[i][i] = 1;
for (int i = 1; i < N; ++i) {
for(int j = i; j < N; ++j) {
if ((arr[j - i] == arr[j]) && (dp[j - i + 1][j - 1])) {
dp[j - i][j] = 1;
}
else dp[j - i][j] = 0;
}
}
std::cin >> M;
int start, end;
for (int i = 0; i < M; ++i) {
std::cin >> start >> end;
std::cout << dp[start - 1][end - 1]<< '\n';
}
for (int i = 0; i < N; ++i) delete[] dp[i];
delete[] dp;
delete[] arr;
return 0;
}