#include<bits/stdc++.h>
using namespace std;
int n;
int w[1001][3];
queue<pair<int,int> > q;
int main(){
cin>>n;
int a,b;
int x,y;
cin>>b>>a;
w[1][1]=a;
w[1][2]=b;
stack<pair<int,int> > s1,s2;
int ans=0;
for(int i=2;i<=n;i++){
cin>>w[i][2]>>w[i][1];
if(w[i][1]==a&&w[i][2]>b){
int u=w[i][2]-b;
while(!s2.empty()){
pair<int,int> d=s2.top();
s2.pop();
if(d.second>u){
ans+=u*(d.first-a);
u-=u;
d.second-=u;
s2.push(d);
break;
} else{
ans+=d.second*(d.first-a);
u-=d.second;
}
}
if(u!=0){
s1.push({a,u});
}
}else if(w[i][1]==a&&w[i][2]<=b){
int u=b-w[i][2];
while(!s1.empty()){
pair<int,int> d=s1.top();
s1.pop();
if(d.second>u){
ans+=u*(a-d.first);
u-=u;
d.second-=u;
s1.push(d);
break;
} else{
ans+=d.second*(a-d.first);
u-=d.second;
}
}
if(u!=0){
s2.push({a,u});
}
}
a=w[i][1];
b=w[i][2];
}
int i=1;
if(w[i][1]==a&&w[i][2]>b){
int u=w[i][2]-b;
while(!s2.empty()){
pair<int,int> d=s2.top();
s2.pop();
if(d.second>=u){
ans+=u*(d.first-a);
u-=u;
d.second-=u;
s2.push(d);
break;
} else{
ans+=d.second*(d.first-a);
u-=d.second;
}
}
if(u!=0){
s1.push({a,u});
}
}else if(w[i][1]==a&&w[i][2]<=b){
int u=b-w[i][2];
while(!s1.empty()){
pair<int,int> d=s1.top();
s1.pop();
if(d.second>=u){
ans+=u*(a-d.first);
u-=u;
d.second-=u;
s1.push(d);
break;
} else{
ans+=d.second*(a-d.first);
u-=d.second;
}
}
if(u!=0){
s2.push({a,u});
}
}
cout<<abs(ans);
return 0;
}