CF1452A Robot Program

Description

There is an infinite 2-dimensional grid. The robot stands in cell $ (0, 0) $ and wants to reach cell $ (x, y) $ . Here is a list of possible commands the robot can execute: - move north from cell $ (i, j) $ to $ (i, j + 1) $ ; - move east from cell $ (i, j) $ to $ (i + 1, j) $ ; - move south from cell $ (i, j) $ to $ (i, j - 1) $ ; - move west from cell $ (i, j) $ to $ (i - 1, j) $ ; - stay in cell $ (i, j) $ . The robot wants to reach cell $ (x, y) $ in as few commands as possible. However, he can't execute the same command two or more times in a row. What is the minimum number of commands required to reach $ (x, y) $ from $ (0, 0) $ ?

Input Format

The first line contains a single integer $ t $ ( $ 1 \le t \le 100 $ ) — the number of testcases. Each of the next $ t $ lines contains two integers $ x $ and $ y $ ( $ 0 \le x, y \le 10^4 $ ) — the destination coordinates of the robot.

Output Format

For each testcase print a single integer — the minimum number of commands required for the robot to reach $ (x, y) $ from $ (0, 0) $ if no command is allowed to be executed two or more times in a row.

Explanation/Hint

The explanations for the example test: We use characters N, E, S, W and 0 to denote going north, going east, going south, going west and staying in the current cell, respectively. In the first test case, the robot can use the following sequence: NENENENENE. In the second test case, the robot can use the following sequence: NENENEN. In the third test case, the robot can use the following sequence: ESENENE0ENESE. In the fourth test case, the robot doesn't need to go anywhere at all. In the fifth test case, the robot can use the following sequence: E0E.