Prison Break (Codeforces 1415A)
Tags: Math, brute force

There is a prison that can be represented as a rectangular matrix with $$$n$$$ rows and $$$m$$$ columns. Therefore, there are $$$n \cdot m$$$ prison cells. There are also $$$n \cdot m$$$ prisoners, one in each prison cell. Let's denote the cell in the $$$i$$$-th row and the $$$j$$$-th column as $$$(i, j)$$$.There's a secret tunnel in the cell $$$(r, c)$$$, that the prisoners will use to escape! However, to avoid the risk of getting caught, they will escape at night.Before the night, every prisoner is in his own cell. When night comes, they can start moving to adjacent cells. Formally, in one second, a prisoner located in cell $$$(i, j)$$$ can move to cells $$$( i - 1 , j )$$$ , $$$( i + 1 , j )$$$ , $$$( i , j - 1 )$$$ , or $$$( i , j + 1 )$$$, as long as the target cell is inside the prison. They can also choose to stay in cell $$$(i, j)$$$.The prisoners want to know the minimum number of seconds needed so that every prisoner can arrive to cell $$$( r , c )$$$ if they move optimally. Note that there can be any number of prisoners in the same cell at the same time. 

Input: The first line contains an integer $$$t$$$ $$$(1 \le t \le 10^4)$$$, the number of test cases.Each of the next $$$t$$$ lines contains four space-separated integers $$$n$$$, $$$m$$$, $$$r$$$, $$$c$$$ ($$$1 \le r \le n \le 10^9$$$, $$$1 \le c \le m \le 10^9$$$).

Output: Print $$$t$$$ lines, the answers for each test case.


Sample Inputs:
3
10 10 1 1
3 5 2 4
10 2 5 1

Sample Outputs:
18
4
6

Solution (Python):
def prison_break(t, test_cases):
    for case in test_cases:
        (n, m, r, c) = case
        max_time = max(r - 1, n - r) + max(c - 1, m - c)
        print(max_time)
t = int(input())
test_cases = [list(map(int, input().split())) for _ in range(t)]
prison_break(t, test_cases)

Solution (Python):
for s in [*open(0)][1:]:
    (n, m, r, c) = map(int, s.split())
    print(max(m - c, c - 1) + max(r - 1, n - r))

Solution (Python):
for _ in [*open(0)][1:]:
    (n, m, r, c) = map(int, _.split())
    print(max(r + c - 2, n + m - r - c, m + r - c - 1, n + c - r - 1))