Кабінки в убиральні
В убиральні в рядок розташовані n + 2 кабінки. Кабінки на лівому і правому кінцях завжди зайняті охоронцями. Решта n кабінок призначені для користувачів.
Кожного разу, коли хтось заходить у ванну, він намагається вибрати кабінку, максимально віддалену від інших людей. Щоб уникнути плутанини, вони дотримуються певних правил: для кожної порожньої кабінки s обчислюються два значення l[s]
і r[s]
, які є кількістю порожніх кабінок між s і найближчою зайнятою кабінкою зліва і справа відповідно. Потім розглядається множина кабінок з найдальшим найближчим сусідом, тобто ті s, для яких min(l[s]
, r[s]
) є максимальним. Якщо така кабінка єдина, то вибирається саме вона; в іншому випадку вибирається та з кабінок, де max(l[s]
, r[s]
) є максимальним. Якщо і таких кабінок виявиться кілька, то вибирається найліва з них.
k людей збираються увійти в убиральню. Кожен вибирає собі кабінку до приходу наступної людини. Ніхто ніколи не виходить.
Коли остання людина вибирає свою кабінку s, чому дорівнює значення max(l[s]
, r[s]
) і min(l[s]
, r[s]
)?
Вхідні дані
Перша рядок містить кількість тестів t (1 ≤ t ≤ 100). Далі слідують t рядків. Кожен рядок містить два цілих числа n (1 ≤ n ≤ 10^18
) і k (1 ≤ k ≤ n).
Вихідні дані
Для кожного тесту виведіть один рядок, що містить Case #x: y z, де x номер тесту (починаючи з 1), y дорівнює max(l[s]
, r[s]
), z дорівнює min(l[s]
, r[s]
) - ці значення підраховані для останньої людини, яка увійшла в убиральню і вибрала кабінку s.