2
2
using namespace std ;
3
3
#define ll long long
4
4
5
- struct Aresta {
5
+ struct Edge {
6
6
int u, v; ll cap, cost;
7
- Aresta (int u, int v, ll cap, ll cost) : u(u), v(v), cap(cap), cost(cost) {}
7
+ Edge (int u, int v, ll cap, ll cost) : u(u), v(v), cap(cap), cost(cost) {}
8
8
};
9
9
10
10
struct MCMF {
11
11
const ll INF = numeric_limits<ll>::max();
12
- int n, source, sink ;
12
+ int n, src, snk ;
13
13
vector<vector<int >> adj;
14
- vector<Aresta > edges;
14
+ vector<Edge > edges;
15
15
vector<ll> dist, pot;
16
16
vector<int > from;
17
17
18
- MCMF (int n, int source , int sink ) : n(n), source(source ), sink(sink ) { adj.resize (n); pot.resize (n); }
18
+ MCMF (int n, int src , int snk ) : n(n), src(src ), snk(snk ) { adj.resize (n); pot.resize (n); }
19
19
20
- void addAresta (int u, int v, ll cap, ll cost){
20
+ void addEdge (int u, int v, ll cap, ll cost){
21
21
adj[u].push_back (edges.size ());
22
22
edges.emplace_back (u, v, cap, cost);
23
23
@@ -32,8 +32,8 @@ struct MCMF {
32
32
from.assign (n, -1 );
33
33
vis.assign (n, false );
34
34
35
- q.push (source );
36
- dist[source ] = 0 ;
35
+ q.push (src );
36
+ dist[src ] = 0 ;
37
37
38
38
while (!q.empty ()){
39
39
int u = q.front ();
@@ -58,17 +58,17 @@ struct MCMF {
58
58
if (dist[u] < INF)
59
59
pot[u] += dist[u];
60
60
61
- return dist[sink ] < INF;
61
+ return dist[snk ] < INF;
62
62
}
63
63
64
64
pair<ll, ll> augment (){
65
- ll flow = edges[from[sink ]].cap , cost = 0 ; // fixed flow: flow = min(flow, remainder)
65
+ ll flow = edges[from[snk ]].cap , cost = 0 ; // fixed flow: flow = min(flow, remainder)
66
66
67
- for (int v=sink ; v != source ; v = edges[from[v]].u )
67
+ for (int v=snk ; v != src ; v = edges[from[v]].u )
68
68
flow = min (flow, edges[from[v]].cap ),
69
69
cost += edges[from[v]].cost ;
70
70
71
- for (int v=sink ; v != source ; v = edges[from[v]].u )
71
+ for (int v=snk ; v != src ; v = edges[from[v]].u )
72
72
edges[from[v]].cap -= flow,
73
73
edges[from[v]^1 ].cap += flow;
74
74
@@ -87,4 +87,4 @@ struct MCMF {
87
87
}
88
88
return {flow, cost};
89
89
}
90
- };
90
+ };
0 commit comments