#pragma region template #include using namespace std; // -type- using ll = long long; using pii = pair; using pll = pair; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; using vs = vector; using vpii = vector; using vpll = vector; // -const- const ll MOD = 1000000007; const ll INF = (ll)0x3f0000003f000000; const double EPS = 1e-9; const int dx[] = {0, 1, 0, -1, 1, -1, 1, -1}, dy[] = {1, 0, -1, 0, 1, -1, -1, 1}; // -define- #define reps(i, k, n) for (int i = (k), i##_len = (n); i < i##_len; ++i) #define rep(i, n) reps(i, 0, n) #define repsr(i, k, n) \ for (int i = int(n) - 1, i##_len = (k); i >= i##_len; --i) #define repr(i, n) for (int i = int(n) - 1; i >= 0; --i) #define all(o) begin(o), end(o) #define sz(a) ((int)(a).size()) #define debug(...) debug_args(__LINE__, __VA_ARGS__) // clang-format off // -functions- inline bool in(string s, string c) {return (s.find(c) != string::npos);} inline bool in(string s, char c) {return (s.find(c) != string::npos);} template T udiv(T a, T b) {return (a + b - 1) / b;} template T rdiv(T a, T b) {return (a + b / 2) / b;} void print_args(ostream&) {} template void print_args(ostream& out,const S& a,const T&... args) { out << ' ' << a; print_args(out, args...); } template void print(const S& a, const T&... args) { std::cout << a; print_args(std::cout, args...); std::cout << '\n'; } template void debug_args(const S& a, const T&... args) { std::cout << "(L:" << std::setw(3) << a << ")"; print_args(std::cout, args...); std::cout << '\n'; } // clang-format on struct setup_main { setup_main() { std::cin.tie(0); std::ios::sync_with_stdio(0); std::cout << fixed << setprecision(15); } } setup_main_; ll ans = 0; #pragma endregion bool st(true), en(false); int main() { int n; cin >> n; vpii a(n + 1, make_pair(0, 0)); vi rsum(n + 2, 0); vi lsum(n + 2, 0); reps(i, 1, n + 1) { cin >> a[i].first; cin >> a[i].second; } reps(i, 1, n + 1) { lsum[i] += a[i].first - a[i].second; } reps(i, 1, n + 1) lsum[i + 1] += lsum[i]; reps(i, 1, n + 1) { rsum[i - 1] = a[i].second - a[i].first; } for (int i = n - 1; i > 0; i--) rsum[i - 1] += rsum[i]; rep(i, n + 1) { ans = max(ans, lsum[i] + rsum[i]); } print(ans); }