#include <iostream>
#define LL long long
using namespace std;
const int N=50001;
inline int read()
{
int x=0;bool w=0;char ch=0;
while(ch<'0'|ch>'9'){w|=(ch=='-');ch=getchar();}
while(ch>='0'&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return w?-x:x;
}
struct cdq{int tag,x,v;}a[N],tmp[N];LL ans[N];
void sort(int l,int r)
{
if(l==r)return;int m=l+r>>1,i=l,j=m+1,tot=l;sort(l,m);sort(m+1,r);
while(i<=m&j<=r)tmp[tot++]=(a[i].v<=a[j].v?a[i++]:a[j++]);
while(i<=m)tmp[tot++]=a[i++];while(j<=r)tmp[tot++]=a[j++];
for(i=l;i<=r;i++)a[i]=tmp[i];
}
void solve(int l,int r)
{
if(l==r)return;int i=l,m=l+r>>1,j=m+1,tot=l,prefix=0,suffix=0,len=-l-m-1;solve(l,m);solve(m+1,r);
for(int k=l;k<=m;k++)suffix+=a[k].x;
while(i<=m&j<=r)
{
if(a[i].x<=a[j].x)
{
prefix+=a[i].x,suffix-=a[i].x,tmp[tot++]=a[i++];
}
else
{
ans[a[j].tag]+=a[j].x*((i<<1)+len)+suffix-prefix,tmp[tot++]=a[j++];
}
}
while(i<=m)tmp[tot++]=a[i++];
while(j<=r){ans[a[j].tag]+=a[j].x*((i<<1)+len)+suffix-prefix,tmp[tot++]=a[j++];}
for(i=l;i<=r;i++)a[i]=tmp[i];
}
signed main()
{
int n=read();
for(int i=1;i<=n;i++)a[i].v=read(),a[i].x=read(),a[i].tag=i;
sort(1,n);
solve(1,n);
LL sum=0;
for(int i=1;i<=n;i++)sum+=a[i].v*ans[a[i].tag];
cout<<sum;
return 0;
}