#include<bits/stdc++.h>
using namespace std;
long long n,m;
long long c1[200000],c2[200000],suum[2000000],ans;
struct node{
long long u,x;
}a[2000000];
bool cmp(node s1,node s2){
return s1.u<s2.u;
}
long long lb(long long x){
return x&(-x);
}
long long updata(long long x,long long k){
for(long long i=x;i<=n;i+=lb(i)){
c1[i]+=k;
}
}
long long updata1(long long x,long long k){
for(long long i=x;i<=n;i+=lb(i)){
c2[i]+=k;
}
}
long long sum(long long x){
long long ans=0;
for(long long i=x;i>0;i-=lb(i)){
ans+=c1[i];
}
return ans;
}
long long sum1(long long x){
long long ans=0;
for(long long i=x;i>0;i-=lb(i)){
ans+=c2[i];
}
return ans;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].u>>a[i].x;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
suum[i]=suum[i-1]+a[i].x;
}
for(int i=1;i<=n;i++){
int t1=sum(a[i].x);
int t2=sum1(a[i].x);
ans+=(t1*a[i].x-t2)*a[i].u;
ans+=((suum[i-1]-t2)-(i-t1-1)*a[i].x)*a[i].u;
updata(a[i].x,1);
updata1(a[i].x,a[i].x);
}
cout<<ans;
return 0;
}
有没有大佬帮忙看看