#include<iostream>
#include<algorithm>
using namespace std;
int n, x[55], y[55], ans[55];
void helper() {
// 遍历所有可能的目标位置
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
int dis[n], tmp = 0;
// 计算所有棋子到当前位置的曼哈顿距离
for(int k = 0; k < n; k++)
dis[k] = abs(x[i]-x[k]) + abs(y[j]-y[k]);
// 排序距离数组
sort(dis, dis+n);
// 计算并更新k个棋子的最小移动步数
for(int k = 0; k < n; k++) {
tmp += dis[k];
ans[k] = ans[k]>tmp ? tmp : ans[k];
}
}
}
}
int main() {
cin >> n;
for(int i = 0; i < n; i++) cin >> x[i];
for(int i = 0; i < n; i++) cin >> y[i];
// 初始化答案数组
for(int i = 0; i < n; i++) ans[i] = 10000000000;
helper();
// 输出结果
for(int i = 0; i < n; i++) {
cout << ans[i];
if(i < n-1) cout << " ";
}
return 0;
}
import java.util.*;
public class Main {
static int n;
static int[] x = new int[55];
static int[] y = new int[55];
static long[] ans = new long[55];
public static void helper() {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
int[] dis = new int[n];
long tmp = 0;
for(int k = 0; k < n; k++)
dis[k] = Math.abs(x[i]-x[k]) + Math.abs(y[j]-y[k]);
Arrays.sort(dis);
for(int k = 0; k < n; k++) {
tmp += dis[k];
ans[k] = ans[k]>tmp ? tmp : ans[k];
}
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(int i = 0; i < n; i++) x[i] = sc.nextInt();
for(int i = 0; i < n; i++) y[i] = sc.nextInt();
for(int i = 0; i < n; i++) ans[i] = 10000000000L;
helper();
for(int i = 0; i < n; i++) {
System.out.print(ans[i]);
if(i < n-1) System.out.print(" ");
}
}
}
def helper(n, x, y):
ans = [10000000000] * n
for i in range(n):
for j in range(n):
dis = [abs(x[i]-x[k]) + abs(y[j]-y[k]) for k in range(n)]
dis.sort()
tmp = 0
for k in range(n):
tmp += dis[k]
ans[k] = tmp if tmp < ans[k] else ans[k]
return ans
n = int(input())
x = list(map(int, input().split()))
y = list(map(int, input().split()))
result = helper(n, x, y)
print(' '.join(map(str, result)))