using namespace std;
const int N=1e5+10;
int n;
int s[N],t[N];
struct kl{
long long v,x;
}a[N];
int lowbit(int x){
return x&(-x);
}
void add1(int x,int k){
for(int i=x;i<N;i+=lowbit(i)){
s[i]+=k;
}
}
void add2(int x,int k){
for(int i=x;i<N;i+=lowbit(i)){
t[i]+=k;
}
}
int ask1(int x){
int res=0;
for(int i=x;i;i-=lowbit(i)) res+=s[i];
return res;
}
int ask2(int x){
int res=0;
for(int i=x;i;i-=lowbit(i)) res+=t[i];
return res;
}
int cmp(kl x,kl y){
return x.v<y.v;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].v>>a[i].x;
sort(a+1,a+1+n,cmp);
long long op=0,res=0;
for(int i=1;i<=n;i++){
int nu=ask1(a[i].x),su=ask2(a[i].x);
res+=(nu*a[i].x-su)*a[i].v;
res+=((op-su)-(i-1-nu)*a[i].x)*a[i].v;
add1(a[i].x,1);
add2(a[i].x,a[i].x);
op+=a[i].x;
}
cout<<res<<endl;
return 0;
}
struct kl{
long long v,x;
}a[N];
这里为什么要定义成long long 明明题上的数据木有爆 啊