#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, m, n) for(int i=int(m);i inline void chmin(T1 &a, T2 b) { if (a > b) a = b; } template inline void chmax(T1 &a, T2 b) { if (a < b) a = b; } //改造 typedef long long int ll; using namespace std; #define INF (1 << 30) - 1 #define INFl (ll)5e15 #define DEBUG 0 //デバッグする時1にしてね #define dump(x) cerr << #x << " = " << (x) << endl #define MOD 1000000007 //ここから編集する class Solve { public: void input() { } void solve() { input(); int N; cin >> N; int final = N - (N / 3); using P = pair; vector

vp(N); rep(i, 0, N) { cin >> vp[i].first >> vp[i].second; } sort(all(vp), [&](P a, P b) { return a.first + a.second * final < b.first + b.second * final; }); vector

items; for (int i = 0; i < final; ++i) { items.push_back(vp[i]); } sort(all(items), [](P a, P b) { return a.second > b.second; }); ll ans = 0ll; for (int i = 0; i < final; ++i) { ll tmp = items[i].first + items[i].second * i; ans += tmp; } cout << ans << endl; } }; int main() { cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(10); Solve().solve(); return 0; }