#include<stdio.h>
struct PT{int x, y;};
PT a[20];
int n, d[30][30], c[30];
int abs(int n){ return n<0?-n:n;}
int min(int a, int b){ return a>b?b:a; }
int done(void)
{
    int i;
    for( i = 0 ; i < n ; i++ )
        if( !c[i] ) return 0;
    return 1;
}
int f(int v)
{
    int i, dis = 0x7fffffff;
    if( done() ) return d[v][0];
    for( i = 0 ; i < n ; i++ )
        if( !c[i] ) c[i] = 1, dis = min(dis, f(i)+d[i][v]), c[i] = 0;
    return dis;
}
main()
{
    int i, j;
    scanf("%d", &n);
    for( i = 0 ; i < n ; i++ )
        scanf("%d%d",&a[i].x,&a[i].y);
    for( i = 0 ; i < n ; i++ ) for( j = 0 ; j < n ; j++ )
        d[i][j] = abs(a[i].x-a[j].x) + abs(a[i].y-a[j].y);
    printf("%d\n", f(0));
}
