#include <iostream>
#include <vector>
#include <cmath>
#include <map>
#include <set>
#include <unordered_map>
#include <queue>
#include <deque>
#include <algorithm>
#include <bitset>
#include <numeric>
#include <unordered_set>
#include <string>
using namespace std;
struct uc{
    long long a, b, cnt;
    uc(long long a=0, long long b=0, long long cnt=0): a(a), b(b), cnt(cnt) {}
};
int main(){
    cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int n;
    cin>>n;
    vector<uc> a(n);
    for(int i=0; i<n; i++){
        cin>>a[i].a>>a[i].b;
    }
    long long res=0, mx_res=-1e18;
    int xpr=0;
    vector<int> p(n);
    for(int i=0; i<n; i++){
        cin>>p[i];
        res+=a[i].a+a[i].b*i;
        mx_res=max(res, mx_res);
    }
    cout<<mx_res;
    return 0;
}