#include #include #include #include #include #include #include using namespace std; using ll = long long; int main() { int N;cin >> N; vector A(N), B(N); for (int i = 0;i < N;i++) cin >> A[i] >> B[i]; vector dp(N+1, -1); dp[0] = 0; for (int i = N-1;i >= 0;i--) { vector ndp(N+1, -1); for (int j = 0;j <= N;j++) { if (dp[j] < 0) continue; //use a ndp[j] = max(ndp[j], dp[j] + ((ll)j * A[i])); //useb if (j+1 <= N) ndp[j+1] = max(ndp[j+1], dp[j] + B[i]); } swap(dp, ndp); } ll res = 0; for (int i = 0;i <= N;i++) res = max(res, dp[i]); cout << res << endl; }