题意:



思路:






#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
struct Node{
    int t,d;
}a[N];
int n,sum[N];
bool cmp(Node a,Node b){
    return a.t * b.d < a.d * b.t;
}
int main(){
    scanf("%d",&n);
    for(int i = 1;i <= n;i++){
        scanf("%d%d",&a[i].t,&a[i].d);
    }
    sort(a+1,a+1+n,cmp);
    for(int i = 1;i <= n;i++) sum[i] = sum[i-1] + a[i].d;
    ll ans = 0;
    for(int i = 1;i <= n;i++){
        ans += 2 * a[i].t * (sum[n] - sum[i]); 
    }
    printf("%lld\n",ans);
    return 0;
}