def max_perimeter(n: int, points: List[List[int]]) -> str:
    """
    You are given $n$ points on the plane. The polygon formed from all the $n$ points is strictly convex, that is, the polygon is convex, and there are no three collinear points (i.e. lying in the same straight line). The points are numbered from $1$ to $n$, in clockwise order.
    
    We define the distance between two points $p_1 = (x_1, y_1)$ and $p_2 = (x_2, y_2)$ as their Manhattan distance: $$d(p_1, p_2) = |x_1 - x_2| + |y_1 - y_2|.$$
    
    Furthermore, we define the perimeter of a polygon, as the sum of Manhattan distances between all adjacent pairs of points on it; if the points on the polygon are ordered as $p_1, p_2, \ldots, p_k$ $(k \geq 3)$, then the perimeter of the polygon is $d(p_1, p_2) + d(p_2, p_3) + \ldots + d(p_k, p_1)$.
    
    For some parameter $k$, let's consider all the polygons that can be formed from the given set of points, having any $k$ vertices, such that the polygon is not self-intersecting. For each such polygon, let's consider its perimeter. Over all such perimeters, we define $f(k)$ to be the maximal perimeter.
    
    Please note, when checking whether a polygon is self-intersecting, that the edges of a polygon are still drawn as straight lines. For instance, in the following pictures:
    
    [Image]
    
    In the middle polygon, the order of points ($p_1, p_3, p_2, p_4$) is not valid, since it is a self-intersecting polygon. The right polygon (whose edges resemble the Manhattan distance) has the same order and is not self-intersecting, but we consider edges as straight lines. The correct way to draw this polygon is ($p_1, p_2, p_3, p_4$), which is the left polygon.
    
    Your task is to compute $f(3), f(4), \ldots, f(n)$. In other words, find the maximum possible perimeter for each possible number of points (i.e. $3$ to $n$).
    
    
    -----Input-----
    
    The first line contains a single integer $n$ ($3 \leq n \leq 3\cdot 10^5$) — the number of points.
    
    Each of the next $n$ lines contains two integers $x_i$ and $y_i$ ($-10^8 \leq x_i, y_i \leq 10^8$) — the coordinates of point $p_i$.
    
    The set of points is guaranteed to be convex, all points are distinct, the points are ordered in clockwise order, and there will be no three collinear points.
    
    
    -----Output-----
    
    For each $i$ ($3\leq i\leq n$), output $f(i)$.
    
    
    -----Examples-----
    Input
    4
    2 4
    4 3
    3 0
    1 3
    
    Output
    12 14
    Input
    3
    0 0
    0 2
    2 0
    
    Output
    8
    
    
    -----Note-----
    
    In the first example, for $f(3)$, we consider four possible polygons:   ($p_1, p_2, p_3$), with perimeter $12$.  ($p_1, p_2, p_4$), with perimeter $8$.  ($p_1, p_3, p_4$), with perimeter $12$.  ($p_2, p_3, p_4$), with perimeter $12$.
    
    For $f(4)$, there is only one option, taking all the given points. Its perimeter $14$.
    
    In the second example, there is only one possible polygon. Its perimeter is $8$.
    """


# Tests

def check(candidate):
    assert candidate(4, [[2, 4], [4, 3], [3, 0], [1, 3]]) == '12 14'
    assert candidate(3, [[0, 0], [0, 2], [2, 0]]) == '8'
    assert candidate(8, [[0, 3], [2, 2], [3, 0], [2, -2], [0, -3], [-2, -2], [-3, 0], [-2, 2]]) == '20 24 24 24 24 24'
    assert candidate(4, [[-100000000, -100000000], [-100000000, 100000000], [100000000, 100000000], [100000000, -100000000]]) == '800000000 800000000'
    assert candidate(4, [[0, 0], [10, 10], [10, 9], [1, 0]]) == '40 40'
    assert candidate(4, [[12345678, 99999999], [12345679, 100000000], [12345680, 99999999], [12345679, 99999998]]) == '6 8'
    assert candidate(6, [[-1000, 1000], [-998, 1001], [-996, 1000], [-996, 996], [-997, 995], [-1001, 997]]) == '20 22 22 22'
    assert candidate(3, [[51800836, -5590860], [51801759, -5590419], [51801320, -5590821]]) == '2728'
    assert candidate(3, [[97972354, -510322], [97972814, -510361], [97972410, -510528]]) == '1332'
    assert candidate(4, [[-95989415, -89468419], [-95989014, -89468179], [-95989487, -89468626], [-95989888, -89468866]]) == '3122 3122'
    assert candidate(4, [[100000000, 0], [0, -100000000], [-100000000, 0], [0, 100000000]]) == '600000000 800000000'
    assert candidate(3, [[77445196, 95326351], [77444301, 95326820], [77444705, 95326693]]) == '2728'
    assert candidate(3, [[-99297393, 80400183], [-99297475, 80399631], [-99297428, 80399972]]) == '1268'
    assert candidate(10, [[811055, 21220458], [813063, 21222323], [815154, 21220369], [817067, 21218367], [815214, 21216534], [813198, 21214685], [803185, 21212343], [805063, 21214436], [806971, 21216475], [808966, 21218448]]) == '47724 47724 47724 47724 47724 47724 47724 47724'
    assert candidate(12, [[-83240790, -33942371], [-83240805, -33942145], [-83240821, -33941752], [-83240424, -33941833], [-83240107, -33942105], [-83239958, -33942314], [-83239777, -33942699], [-83239762, -33942925], [-83239746, -33943318], [-83240143, -33943237], [-83240460, -33942965], [-83240609, -33942756]]) == '5282 5282 5282 5282 5282 5282 5282 5282 5282 5282'
    assert candidate(20, [[-2967010, 48581504], [-2967318, 48581765], [-2967443, 48581988], [-2967541, 48582265], [-2967443, 48582542], [-2967318, 48582765], [-2967010, 48583026], [-2966691, 48583154], [-2966252, 48583234], [-2965813, 48583154], [-2965494, 48583026], [-2965186, 48582765], [-2965061, 48582542], [-2964963, 48582265], [-2965061, 48581988], [-2965186, 48581765], [-2965494, 48581504], [-2965813, 48581376], [-2966252, 48581296], [-2966691, 48581376]]) == '7648 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032 9032'
    assert candidate(4, [[0, 99999999], [0, 100000000], [1, -99999999], [1, -100000000]]) == '400000002 400000002'
check(max_perimeter)