#include #define rep(i, a, n) for(int i = a; i < n; i++) #define int long long using namespace std; typedef pair P; const int mod = 1000000007; const int INF = 1e18; int dp[2010], nxt[2010]; signed main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n; cin >> n; vector a(n), b(n); vector

d(n); rep(i, 0, n){ cin >> a[i] >> b[i]; d[i] = {b[i], i}; } sort(d.rbegin(), d.rend()); int m = n - n / 3; for(int i = 0; i <= n; i++) dp[i] = INF; dp[0] = 0; for(int i = 0; i < n; i++){ int id = d[i].second; for(int j = 0; j <= n; j++) nxt[j] = dp[j]; for(int j = 0; j < m; j++){ if(dp[j] == INF) break; nxt[j + 1] = min(nxt[j + 1], dp[j] + a[id] + b[id] * j); } swap(dp, nxt); } cout << dp[m] << endl; }