#include using namespace std; using ll=long long; #define rep(i,n) for(int i=0;i> n; vector a(n),b(n); rep(i,n) cin >> a[i] >> b[i]; assert(1<=n&&n<=5000); rep(i,n){ assert(1<=a[i]&&a[i]<=1000000000); assert(1<=b[i]&&b[i]<=1000000000); } reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); vector> dp(n+5,vector(n+5,-2e18)); // dp[i][j]:= 後ろから見て i 枚目までで j 回攻撃 dp[0][0]=0; rep(i,n) rep(j,n+1){ chmax(dp[i+1][j],dp[i][j]+a[i]*j); chmax(dp[i+1][j+1],dp[i][j]+b[i]); } ll ans=0; rep(i,n+1) chmax(ans,dp[n][i]); cout << ans << endl; }