| 11 | vector<int> degree; |
| 12 | |
| 13 | void dfs(int v) { |
| 14 | visited[v] = true; |
| 15 | for (int u : adj_rev[v]) { |
| 16 | if (!visited[u]) { |
| 17 | if (losing[v]) |
| 18 | winning[u] = true; |
| 19 | else if (--degree[u] == 0) |
| 20 | losing[u] = true; |
| 21 | else |
| 22 | continue; |
| 23 | dfs(u); |
| 24 | } |
| 25 | } |
| 26 | } |
| 27 | struct State { |
| 28 | int P, T; |
| 29 | bool Pstep; |