There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that course ai must be taken before course bi.
Prerequisites can be indirect. If course a is a prerequisite of course b, and course b is a prerequisite of course c, then course a is a prerequisite of course c.
You are also given an array queries where queries[j] = [uj, vj]. For each query, answer whether course uj is a prerequisite of course vj (either directly or indirectly).
Return a boolean array answer where answer[j] is the answer to the j-th query.
Example 1:
Input: numCourses = 2, prerequisites = [[1,0]], queries = [[0,1],[1,0]]
Output: [false,true]
Explanation: Course 1 is a prerequisite of course 0. Course 0 is not a prerequisite of course 1.
Example 2:
Input: numCourses = 2, prerequisites = [], queries = [[1,0],[0,1]]
Output: [false,false]
Explanation: There are no prerequisites, so no course is a prerequisite of any other.
Example 3:
Input: numCourses = 3, prerequisites = [[1,2],[1,0],[2,0]], queries = [[1,0],[1,2]]
Output: [true,true]
Explanation: Course 1 is a direct prerequisite of both course 0 and course 2. So the answer to both queries is true.
2 <= numCourses <= 1000 <= prerequisites.length <= (numCourses * (numCourses - 1)) / 2prerequisites[i].length == 20 <= ai, bi <= numCourses - 1ai !== bi[ai, bi] are unique1 <= queries.length <= 100000 <= uj, vj <= numCourses - 1uj !== vj