x문제를 풀기 위해 이전에 풀어야 하는 문제 수
이전에 풀어야하는 문제를 거꾸로 graph에 넣어서 dfs를 돌며 ans++를 해줌
(제발.. 문제를 잘 읽자…)
const input = require('fs').readFileSync("dev/stdin").toString().trim().split('\n')
const [n, m] = input[0].split(" ").map(Number);
const graph = Array.from({ length: n + 1 }, () => []);
for (let i = 1; i <= m; i++) {
const [a, b] = input[i].split(" ").map(Number);
graph[b].push(a);
}
const x = Number(input[m + 1]);
// console.log(graph);
// console.log(x);
const visited = new Array(n + 1).fill(false);
let ans = 0;
const dfs = (cur) => {
visited[cur] = true;
for (const prev of graph[cur]) {
if (!visited[prev]) {
ans++;
dfs(prev);
}
}
};
dfs(x);
// console.log(visited);
console.log(ans);