#include <iostream>
#include<algorithm>

using namespace std;
const int MAXN = 100000*2 + 10;

int n ;
pair<int,int> a[MAXN] ;
//int cover[MAXN];
long long int ans = 0;

void input(){
    cin >> n;
    for(int i = 0 ; i < n ;i ++)
        cin >> a[i].first >> a[i].second;
}


int search_cover(int x,int start,int end){
    if(start+1 == end)
        return start;

    int m = (start + end)/2;

    if(a[m].first-a[x].first>a[x].second)
        return search_cover(x,start,m);
    else
        return search_cover(x,m,end);
}

void solve(){
    sort(a,a+n);

//    int maxi = -1 ;
//    int sr_maxi = -1 ;
    int val_maxi = -1 ;

    a[n].first = 0;

    for(int i=0 ; i < n ; i++) {
//        cover[i] = search_cover(i, i, n);
        val_maxi = max(val_maxi,a[i].first+a[i].second);

        ans += a[i].second;
        if(val_maxi < a[i+1].first)
            ans += (a[i+1].first-val_maxi);
    }
}

void output(){
    cout << ans << endl;
}

int main() {
    input();
    solve();
    output();
    return 0;
}

// (1,5)