Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>#define rep(n) for(size_t __i = 0, __j=(n); __i < __j; ++__i)#define rep2(i,n) for(size_t (i)=0, _i=n;(i)<_i;(i)++)#define rep3(i,b,e) for(size_t i =(b); (i)<(e); (i)++)#define ran(i,b,e) for(size_t (i)=(b); (i)<=(e); (i)++)#define dran(i,b,e) for(int i=(b),__e=(e); i>=__e; i--) // error-prone#define drep2(i,n) for(size_t (i)=(n)-1; (i)>=0; (i)--)using namespace std;using ll=long long;const size_t N=size_t(1e5+5);vector<size_t> g[N];bool is_stable[N];size_t stable_dominator[N];//topological sortsize_t topo[N], pos;bool vis[N];void dfs(int u){vis[u]=true;for(auto v:g[u])if(!vis[v])dfs(v);topo[pos--]=u;}int main(){