Олимпиадный тренинг

Задача . B. Длинные ноги


Робот стоит в клетке \((0, 0)\) бесконечной сетки. Длина его ног может регулироваться. Изначально длина его ног равна \(1\).

Пусть робот сейчас стоит в клетке \((x, y)\), а длина его ног равна \(m\). За один ход он может исполнить одно из следующих трех действий:

  • прыгнуть в клетку \((x + m, y)\);
  • прыгнуть в клетку \((x, y + m)\);
  • увеличить длину ног на \(1\), то есть сделать ее равной \(m + 1\).

Какое наименьшее количество ходов ему потребуется, чтобы достичь клетки \((a, b)\)?

Входные данные

В первой строке записано одно целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных.

В единственной строке каждого набора входных данных записаны два целых числа \(a\) and \(b\) (\(1 \le a, b \le 10^9\)) — финальная клетка.

Выходные данные

На каждый набор входных данных выведите одно целое число — наименьшее количество ходов, которые потребуется роботу, чтобы достичь клетки \((a, b)\) из клетки \((0, 0)\).

Примечание

В первом наборе входных данных робот может сначала прыгнуть в \((0, 1)\), затем в \((1, 1)\). Если он когда-нибудь увеличит длину своих ног, то он сможет только перепрыгнуть \((1, 1)\).

Во втором наборе робот может прыгнуть в \((1, 0)\), затем увеличить длину своих ног до \(2\), затем прыгнуть трижды до \((1, 6)\).

В третьем наборе робот может увеличить длину своих ног трижды, чтобы сделать ее равной \(4\). Затем прыгнуть в \((0, 4)\). Затем прыгнуть дважды до \((8, 4)\).


Примеры
Входные данныеВыходные данные
1 3
1 1
1 6
8 4
2
5
6

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя