#include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; 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, -INF); dp[0] = 0; for (int i = N - 1; i >= 0; i--) { vector ndp(N + 1, -INF); for (int j = 0; j <= N; j++) { if (dp[j] == -INF) continue; // A ndp[j] = max(ndp[j], dp[j] + A[i] * j); // B ndp[j + 1] = max(ndp[j + 1], dp[j] + B[i]); } dp = ndp; } ll res = -INF; for (int j = 0; j <= N; j++) res = max(res, dp[j]); cout << res << endl; return 0; }