#include <bits/stdc++.h>
using namespace std;
const int inf = 0x7fffffff, infty = (int)1e9, mod = (int)1e9 + 7,
          dxy[] = {-1, 0, 1, 0, -1};
const long long INF = 1ll << 60;
const double pi = acos(-1), eps = 1e-6;
template <class T>
void rd(T &x) {
  x = 0;
  char c;
  while (c = getchar(), c < 48)
    ;
  do x = x * 10 + (c ^ 48);
  while (c = getchar(), c > 47);
}
template <class T>
void rec_pt(T x) {
  if (!x) return;
  rec_pt(x / 10);
  putchar(x % 10 ^ 48);
}
template <class T>
void pt(T x) {
  if (!x)
    putchar('0');
  else
    rec_pt(x);
}
template <class T>
inline void ptn(T x) {
  pt(x), putchar('\n');
}
template <class T>
inline void Max(T &a, T b) {
  if (b > a) a = b;
}
template <class T>
inline void Min(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
inline void mod_add(int &a, int b, int m = mod) {
  if ((a += b) >= m) a -= m;
}
inline void mod_minus(int &a, int b, int m = mod) {
  if ((a -= b) < 0) a += m;
}
int mod_pow(int a, int b, int m = mod) {
  int res = m == 1 ? 0 : 1;
  for (; b; b >>= 1, a = (long long)a * a % m)
    if (b & 1) res = (long long)res * a % m;
  return res;
}
const int N = 105;
pair<int, int> dat[N];
int dp[N][N][2];
int main() {
  int n, ans = 0;
  rd(n);
  for (int i = (1), _t = (n + 1); i < _t; ++i)
    rd(dat[i].first), rd(dat[i].second);
  sort(dat + 1, dat + n + 1);
  dat[0].first = -infty;
  for (int i = (0), _t = (n + 1); i < _t; ++i)
    for (int j = (0), _t = (i + 1); j < _t; ++j)
      for (int k = (0), _t = (2); k < _t; ++k) {
        Max(ans, dp[i][j][k]);
        for (int t = i + 1, pre = dat[j].first + k * dat[j].second, mx = -inf,
                 a, b;
             t <= n; ++t)
          for (int f = (0), _t = (2); f < _t; ++f) {
            int nxt = dat[t].first + f * dat[t].second;
            if (nxt > mx) {
              mx = nxt;
              a = t;
              b = f;
            }
            Max(dp[t][a][b],
                dp[i][j][k] + min(dat[t].second, nxt - pre) + mx - nxt);
          }
      }
  ptn(ans);
  return 0;
}
