#include using namespace std; using vi = vector; size_t step(vector & segment, size_t initial){ size_t up = segment[0]; size_t down = segment[3]; size_t result = 0; result += min(up, segment[1]) + min(down, segment[4]); up -= min(up, segment[1]); down -= min(down, segment[4]); result += max( min(up, min(segment[2], segment[4])), min(down, min(segment[2], segment[1])) ); return min(initial, result); } void solve(){ size_t N; cin >> N; size_t result = UINT64_MAX; vector> segments(N, {0,0,0,0,0}); for(size_t i = 0; i < N; i++){ for(int j = 0; j < 5; j++){ cin >> segments[i][j]; } } for(size_t i = 0; i < N; i++){ result = step(segments[i], result); } cout << result << endl; } int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); int t = 1; //cin >> t; while (t--){ solve(); } return 0; }