1
// question similar to find all ancestors of current node5
void dfs(vector<vector<int>> &adj, vector<set<int>> &Anc, int u, int par, vector<int> &vis) {6
if (vis[u] != 0) return;10
for (auto &v : adj[u]) {13
dfs(adj, Anc, v, par, vis);20
vector<bool> checkIfPrerequisite(int numCourses, vector<vector<int>> &prerequisites,21
vector<vector<int>> &queries) {23
vector<vector<int>> adj(n);24
vector<set<int>> Anc(n);27
for (auto &edge : prerequisites) {28
adj[edge[0]].push_back(edge[1]);31
for (int i = 0; i < n; i++) {32
vector<int> vis(n, 0);33
dfs(adj, Anc, i, i, vis);36
for (auto &EachQuery : queries) {37
if (Anc[EachQuery[1]].find(EachQuery[0]) != Anc[EachQuery[1]].end())