#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; } int a, b; }; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; int m = n - n / 3; vector

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