Problem:
Score : 500 points

Problem Statement

There are N points on the 2D plane, i-th of which is located on (x_i, y_i).
There can be multiple points that share the same coordinate.
What is the maximum possible Manhattan distance between two distinct points?

Here, the Manhattan distance between two points (x_i, y_i) and (x_j, y_j) is defined by |x_i-x_j| + |y_i-y_j|.

Constraints

2 \leq N \leq 2 \times 10^5

1 \leq x_i,y_i \leq 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
x_1 y_1
x_2 y_2
:
x_N y_N

Output

Print the answer.

Sample Input 1

3
1 1
2 4
3 2

Sample Output 1

4

The Manhattan distance between the first point and the second point is |1-2|+|1-4|=4, which is maximum possible.

Sample Input 2

2
1 1
1 1

Sample Output 2

0

Solution in C (GCC 9.2.1) (judge verdict: Runtime Error)

#include <stdio.h>

int main(void)
{
    static double p[100000][2];
    double min[32], max[32];
    int n;
    int i, j, k;
    double dat;
    double ans;
    
    scanf("%d", &n);
    
    for (i = 0; i < n; i++){
        for (j = 0; j < 2; j++){
            scanf("%lf", &p[i][j]);
        }
    }
    
    ans = 0;
    for (i = 0; i < 1 << 2; i++){
        for (j = 0; j < n; j++){
            dat = 0;
            for (k = 0; k < 2; k++){
                if ((i >> k) & 1){
                    dat += p[j][k];
                }
                else {
                    dat -= p[j][k];
                }
            }
            if (j == 0){
                min[i] = max[i] = dat;
            }
            else {
                if (dat < min[i]){
                    min[i] = dat;
                }
                if (dat > max[i]){
                    max[i] = dat;
                }
            }
        }
        ans = ans > max[i] - min[i] ? ans : max[i] - min[i];
    }
    
    printf("%.0lf\n", ans);
    
    return (0);
}