Хочу сделать несколько замечаний по задаче. Вообще здесь не должны заходить long long, но я забыл в генераторе после проверки поставить обратно $$$10^5$$$. Второе замечание такое: заметил, что у многих полетели задачи из-за того, что они просто выводили trunk(ans). Но требовалось вывести целое число, а trunk возвращает double, поэтому большие числа выводились у многих в экспоненциальной форме, что неверно. Обработка первого, второго и третьего запросов должна быть ясна, запрос четвёртого типа я пояснил. Многие писали, что не описано деление на 0. Но в условии гарантируется существование ответа Для запроса 5-го типа я забыл написать, что a >= 0 && b > 0. А так задача довольно простая, если писать её на Python или с помощью int128 на С++.