ll getDistance(ll x1, ll y1, ll x2, ll y2)
{
return (abs(x1 - x2) + abs(y1 - y2));
}
ll func(ll ax, ll ay, ll bx, ll by, ll idx, vvi &corr)
{
if (idx == corr.size()) return 0;
vector<ll>pos = corr[idx];
ll x1 = pos[0], y1 = pos[1];
ll alice = getDistance(ax, ay, x1, y1) + func(x1, y1, bx, by, idx + 1, corr);
ll bob = getDistance(bx, by, x1, y1) + func(ax, ay, x1, y1, idx + 1, corr);
return min(alice, bob);
}
void getAns(ll n, ll ax, ll ay, ll bx, ll by, vvi &corr)
{
ll ans = func(ax, ay, bx, by, 0, corr);
cout << ans << line;
}
void solve()
{
ll n, ax, ay, bx, by;
cin >> n >> ax >> ay >> bx >> by;
vvi corr;
f(i, 0, n)
{
ll x, y;
cin >> x >> y;
vi v;
v.pb(x);
v.pb(y);
corr.pb(v);
}
getAns(n, ax, ay, bx, by, corr);
}