Контрольная точка
Вы участвуете в гонках на 2D решетке, стартуя с начала координат (0, 0) и двигаетесь к финишу (M, N), где М и N - натуральные числа, 0 < M ≤ N. На пути имеется контрольная точка, которая не совпадает ни с точкой старта, ни с точкой финиша. Она имеет координаты (m, n), причем 0 ≤ m ≤ M и 0 ≤ n ≤ N. Вам следует пройти контрольную точку прежде, чем достигните финиша. Длина самого короткого пути до финиша равна T = M + N.
Из каждой точки Вы можете перейти в одну из четырех ближайших соседних точек, сохраняя при этом постоянную скорость. Но поскольку Вы не хотите проиграть гонку, то каждый раз продолжать движение будете или вправо, или вверх.
Хотя существует много способов дойти до финиша через контрольную точку, гонка является простой, так как найти самый короткий маршрут всегда легко. Для того чтобы сделать гонку более интересной, мы изменим правила. Вместо того чтобы просто двигаться к финишу (M, N), гонщикам предлагается самостоятельно выбрать координаты финиша (x, y) и контрольной точки таким образом, чтобы до финиша существовало ровно S различных кратчайших путей.
Например, рассмотрим для S = 4 два варианта расположения финиша и контрольной точки.
Расположим контрольную точку в (1, 3), а финиш в (2, 3). Существует 4 пути от старта до контрольной точки. От контрольной точки до финиша можно добраться только по единственному пути, сделав при этом минимальное количество шагов. Таким образом всего существует 4 различных кратчайших пути, длина которых равна T = 2 + 3 = 5. Однако имеется лучший вариант выбора контрольной точки и финиша.
Расположим контрольную точку в (1, 1), а финиш в (2, 2). Существует два пути от старта до контрольной точки. Аналогично имеется в точности два пути добраться от контрольной точки до финиша. Что в целом дает 4 различных кратчайших пути. Длина этих путей равна T = 2 + 2 = 4.
Будучи гонщиком Хакер Капа, Вам следует решить где расположить контрольную точку и финиш чтобы не проиграть. По заданному S найдите наименьшее возможное T, которое достигается при всех возможных местоположениях контрольной точки и финиша, чтобы существовало в точности S различных кратчайших путей от старта до финиша, проходящих через контрольную точку.
Входные данные
Первая строка содержит количество гонок R (R ≤ 20), в которых Вы принимаете участие. Далее следуют R строк, каждая из которых описывает гонку одним значением S (1 ≤ S ≤ 10000000). Строки между собой разделяются символом "\n".
Выходные данные
Для каждой гонки в отдельной строке вывести ее номер как показано в примере, а также наименьшую возможную длину кратчайшего пути T.