https://www.acmicpc.net/problem/2150 #include #include #include #include #include using namespace std; const int MAX = 10001; int V, E, cnt, dfsn[MAX], SN, sn[MAX]; vector adj[MAX]; bool finished[MAX]; stack S; vector SCC; int DFS(int curr){ dfsn[curr] = ++cnt; S.push(curr); int result = dfsn[curr]; for(int next: adj[curr]){ if(dfsn[next] == 0) result = min(result, DFS(next)); else if(!finished[..