#include #include #include #include #include #include #include using namespace std; using ll = long long; struct P { bool operator<(const P& p) const { return b > p.b; } ll operator*(int i) const { return a + b * (ll)i; } int a, b; }; ll dp[2048][2048]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector

p(n); for (int i = 0; i < n; i++) { cin >> p[i].a >> p[i].b; } sort(p.begin(), p.end()); dp[0][0] = 0; for (int i = 1; i <= n; i++) { dp[i][0] = 0; for (int j = 1; j < i; j++) { dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - 1] + p[i - 1] * (j - 1)); } dp[i][i] = dp[i - 1][i - 1] + p[i - 1] * (i - 1); } cout << dp[n][n - n / 3] << endl; return 0; }