๋ฐฑ์ค 10942๋ฒ
๐จ ์ฐธ๊ณ 1
๐จ ์ฐธ๊ณ 2
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input.shift();
const arr = input.shift().split(" ").map(Number);
const M = +input.shift();
const dp = Array.from(new Array(N), () => new Array(N).fill(-1));
for (let i = 0; i < N; i++) {
dp[i][i] = 1;
if (arr[i] === arr[i + 1]) {
dp[i][i + 1] = 1;
} else {
dp[i][i + 1] = 0;
}
}
const palindrome = (s, e) => {
if (dp[s][e] === -1) {
if (arr[s] === arr[e]) {
dp[s][e] = palindrome(s + 1, e - 1);
} else {
dp[s][e] = 0;
}
}
return dp[s][e];
};
const result = [];
for (let i = 0; i < M; i++) {
const [S, E] = input[i].split(" ").map(Number);
result.push(palindrome(S - 1, E - 1));
}
console.log(result.join("\n"));