1
var scoreOfStudents = function (s, answers) {4
.reduce((a, c) => a + c.split("*").reduce((b, d) => b * d, 1), 0),6
dp = [...Array(n)].map((d) => [...Array(n)]);7
let dfs = (i = 0, j = n - 1) => {8
if (dp[i][j] !== undefined) return dp[i][j];9
if (i === j) return (dp[i][j] = [Number(s[i])]);11
for (let k = i + 1; k <= j - 1; k += 2)12
for (let a1 of dfs(i, k - 1))13
for (let a2 of dfs(k + 1, j))14
if (s[k] === "*") ans.add(Number(a1) * Number(a2));15
else ans.add(Number(a1) + Number(a2));16
return (dp[i][j] = Array.from(ans).filter((d) => d <= 1000));19
dp[0][n - 1] = new Set(dp[0][n - 1]);20
return answers.reduce(21
(a, c) => a + (c === correct ? 5 : dp[0][n - 1].has(c) ? 2 : 0),