#include using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair pii; typedef vector vi; typedef vector> vii; typedef vector> vpii; template using vec = vector; template using uset = unordered_set; template using umap = unordered_map; template T edmondsKarp(vector>& graph, int source, int sink) { assert(source != sink); T flow = 0; vi par(sz(graph)), q = par; for (;;) { fill(all(par), -1); par[source] = 0; int ptr = 1; q[0] = source; rep(i, 0, ptr) { int x = q[i]; for (auto e : graph[x]) { if (par[e.first] == -1 && e.second > 0) { par[e.first] = x; q[ptr++] = e.first; if (e.first == sink) goto out; } } } return flow; out: T inc = numeric_limits::max(); for (int y = sink; y != source; y=par[y]) inc = min(inc, graph[par[y]][y]); flow += inc; for (int y = sink; y != source; y = par[y]) { int p = par[y]; if ((graph[p][y] -= inc) <= 0) graph[p].erase(y); graph[y][p] += inc; } } } void solve () { int flow = INT_MAX; int n; cin >> n; vector> g(4); rep(i, 0, n) { int a, b, c, d, e; cin >> a >> b >> c >> d >> e; g[0][1] = g[1][0] = a; g[1][3] = g[3][1] = b; g[1][2] = g[2][1] = c; g[0][2] = g[2][0] = d; g[2][3] = g[3][2] = e; flow = min(flow, edmondsKarp(g, 0, 3)); } cout << flow << endl; } int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); ll T = 1; //cin >> T; rep(i, 0, T) solve(); return 0; }