#include using namespace std; using ll = long long; #define FOR(i, l, r) for (ll i = (l); i < (r); ++i) #define RFOR(i, l, r) for (ll i = (r) - 1; (l) <= i; --i) #define REP(i, n) FOR(i, 0, n) #define RREP(i, n) RFOR(i, 0, n) using VLL = vector; using VP = vector>; static const ll INF = (1LL << 62) - 1; // 4611686018427387904 - 1 int main() { ll N; cin >> N; VP AB(N); REP(i, N) { cin >> AB[i].first >> AB[i].second; } VLL dp(N+1,-INF); dp[0] = 0; RREP(i, N) { auto [a, b] = AB[i]; RREP(n, N) { dp[n+1] = max(dp[n+1], dp[n]+b); dp[n] = max(dp[n], dp[n]+a*n); } } ll ans = 0; REP(n, N+1) ans = max(ans, dp[n]); cout << ans << endl; }