@@ -17,14 +17,14 @@ struct mcmf {
1717 };
1818 int n;
1919 vector<edge> e;
20- vector<vi> adj ;
21- mcmf (int n): n(n), adj (n) {}
20+ vector<vi> g ;
21+ mcmf (int n): n(n), g (n) {}
2222 void add_edge (int u, int v, ll cap, ll cost) {
23- edge e1 = {u, v, cap, cost, 0 , sz (adj [v])};
24- edge e2 = {v, u, 0 , -cost, 0 , sz (adj [u])};
25- adj [u].push_back (sz (e));
23+ edge e1 = {u, v, cap, cost, 0 , sz (g [v])};
24+ edge e2 = {v, u, 0 , -cost, 0 , sz (g [u])};
25+ g [u].push_back (sz (e));
2626 e.push_back (e1 );
27- adj [v].push_back (sz (e));
27+ g [v].push_back (sz (e));
2828 e.push_back (e2 );
2929 }
3030 array<ll, 2 > get_flow (int s, int t, ll total_flow) {
@@ -39,8 +39,8 @@ struct mcmf {
3939 int u = q[qh++];
4040 id[u] = 2 ;
4141 if (qh == n) qh = 0 ;
42- rep (i, 0 , sz (adj [u])) {
43- edge& r = e[adj [u][i]];
42+ rep (i, 0 , sz (g [u])) {
43+ edge& r = e[g [u][i]];
4444 if (r.flow < r.cap && d[u] + r.cost < d[r.v ]) {
4545 d[r.v ] = d[u] + r.cost ;
4646 if (id[r.v ] == 0 ) {
@@ -61,14 +61,14 @@ struct mcmf {
6161 for (int u = t; u != s; u = p[u]) {
6262 int pv = p[u], pr = p_edge[u];
6363 addflow = min (addflow,
64- e[adj [pv][pr]].cap - e[adj [pv][pr]].flow );
64+ e[g [pv][pr]].cap - e[g [pv][pr]].flow );
6565 }
6666 for (int u = t; u != s; u = p[u]) {
6767 int pv = p[u], pr = p_edge[u],
68- r = e[adj [pv][pr]].back ;
69- e[adj [pv][pr]].flow += addflow;
70- e[adj [u][r]].flow -= addflow;
71- cost += e[adj [pv][pr]].cost * addflow;
68+ r = e[g [pv][pr]].back ;
69+ e[g [pv][pr]].flow += addflow;
70+ e[g [u][r]].flow -= addflow;
71+ cost += e[g [pv][pr]].cost * addflow;
7272 }
7373 flow += addflow;
7474 }
0 commit comments