0_0_38876299_5362.cpp:20:16: error: found ':' in nested-name-specifier, expected '::'
20 | enum edge_type : uint8_t { DIRECTIONAL, DIRECTIONAL_REVERSE, BIDIRECTIONAL };
| ^
| ::
0_0_38876299_5362.cpp:20:6: error: 'edge_type' has not been declared
20 | enum edge_type : uint8_t { DIRECTIONAL, DIRECTIONAL_REVERSE, BIDIRECTIONAL };
| ^~~~~~~~~
0_0_38876299_5362.cpp:20:26: error: expected unqualified-id before '{' token
20 | enum edge_type : uint8_t { DIRECTIONAL, DIRECTIONAL_REVERSE, BIDIRECTIONAL };
| ^
0_0_38876299_5362.cpp:30:9: error: 'edge_type' does not name a type
30 | edge_type type;
| ^~~~~~~~~
0_0_38876299_5362.cpp:34:53: error: 'edge_type' has not been declared
34 | edge(int _node, int _rev, flow_t _capacity, edge_type _type)
| ^~~~~~~~~
0_0_38876299_5362.cpp:55:70: error: 'edge_type' has not been declared
55 | void _add_edge(int u, int v, flow_t capacity1, flow_t capacity2, edge_type type1, edge_type type2) {
| ^~~~~~~~~
0_0_38876299_5362.cpp:55:87: error: 'edge_type' has not been declared
55 | void _add_edge(int u, int v, flow_t capacity1, flow_t capacity2, edge_type type1, edge_type type2) {
| ^~~~~~~~~
0_0_38876299_5362.cpp: In constructor 'dinic<flow_t>::edge::edge(int, int, flow_t, int)':
0_0_38876299_5362.cpp:35:60: error: class 'dinic<flow_t>::edge' does not have any field named 'type'
35 | : node(_node), rev(_rev), capacity(_capacity), type(_type) {}
| ^~~~
0_0_38876299_5362.cpp: In member function 'void dinic<flow_t>::add_directional_edge(int, int, flow_t)':
0_0_38876299_5362.cpp:65:38: error: 'DIRECTIONAL' was not declared in this scope
65 | _add_edge(u, v, capacity, 0, DIRECTIONAL, DIRECTIONAL_REVERSE);
| ^~~~~~~~~~~
0_0_38876299_5362.cpp:65:51: error: 'DIRECTIONAL_REVERSE' was not declared in this scope
65 | _add_edge(u, v, capacity, 0, DIRECTIONAL, DIRECTIONAL_REVERSE);
| ^~~~~~~~~~~~~~~~~~~
0_0_38876299_5362.cpp: In member function 'void dinic<flow_t>::add_bidirectional_edge(int, int, flow_t)':
0_0_38876299_5362.cpp:69:45: error: 'BIDIRECTIONAL' was not declared in this scope
69 | _add_edge(u, v, capacity, capacity, BIDIRECTIONAL, BIDIRECTIONAL);
| ^~~~~~~~~~~~~
0_0_38876299_5362.cpp: In member function 'std::vector<std::pair<flow_t, std::pair<int, int> > > dinic<flow_t>::min_cut(int)':
0_0_38876299_5362.cpp:173:72: error: 'DIRECTIONAL_REVERSE' was not declared in this scope
173 | if (reachable[node] && !reachable[e.node] && e.type != DIRECTIONAL_REVERSE) {
| ^~~~~~~~~~~~~~~~~~~
0_0_38876299_5362.cpp:175:53: error: 'BIDIRECTIONAL' was not declared in this scope
175 | flow_t original_cap = e.type == BIDIRECTIONAL ? rev_cap / 2 : rev_cap;
| ^~~~~~~~~~~~~
0_0_38876299_5362.cpp: In member function 'flow_t dinic<flow_t>::flow(int, int, flow_t) [with flow_t = int]':
0_0_38876299_5362.cpp:134:84: error: incomplete type 'std::numeric_limits<int>' used in nested name specifier
134 | flow_t flow(int source, int sink, flow_t flow_cap = numeric_limits<flow_t>::max()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
0_0_38876299_5362.cpp:345:23: note: when instantiating default argument for call to 'flow_t dinic<flow_t>::flow(int, int, flow_t) [with flow_t = int]'
345 | puts(isap.flow(source, sink) == m ? "YES" : "NO");
| ~~~~~~~~~^~~~~~~~~~~~~~
|