Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <unordered_set>#include <cassert>using namespace std;struct Edge {int v;int next;Edge(int v_, int next_) :v(v_), next(next_) {};Edge() = default;};vector<Edge> edges;vector<int> head;void addEdge(int u, int v) {edges.emplace_back(v, head[u]);head[u] = edges.size() - 1;}vector<int> dfs(int s, int t) {vector<int> vis(head.size(), 0);vis[s] = 1;vector<int> res = { s };vector<int> stat = { head[s]};while (!res.empty()) {