题号 NC25043
解法 直接贪心。
代码

#include<bits/stdc++.h>
using namespace std;
int n;long long ans,sum;
struct node{int t,d;}a[100005];
bool cmp(node x,node y){
    return x.t*y.d<y.t*x.d;
}
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+n+1,cmp);
    for(int i=1;i<=n;++i){ans+=sum*a[i].d;sum+=a[i].t*2;}
    printf("%lld\n",ans);
    return 0;
}