힐베르트 호텔을 모사한다. 손님은 방 번호를 밀거나 두 배로 옮겨 입장하고, 특정 그룹의 x번째 방 번호와 특정 방의 그룹 번호를 답한다.
어려움8수학조합론구현이분 탐색아직 제출이 없습니다시간 제한1.5초메모리 제한1024 MBHilbert's Hotel has infinitely many rooms, numbered 0, 1, 2, ⋯. At most one guest occupies each room. Since people tend to check-in in groups, the hotel has a group counter variable G.
Hilbert's Hotel had a grand opening today. Soon after, infinitely many people arrived at once, filling every room in the hotel. All guests got the group number 0, and G is set to 1.
Ironically, the hotel can accept more guests even though every room is filled:

You have to write a program to process the following queries:
1 k - If k≥1, then k people arrive at the hotel. If k=0, then infinitely many people arrive at the hotel. Assign the group number G to the new guests, and then increment G by 1.2 g x - Find the x-th smallest room number that contains a guest with the group number g. Output it modulo 109+7, followed by a newline.3 x - Output the group number of the guest in room x, followed by a newline.In the first line, an integer Q (1≤Q≤300,000) denoting the number of queries is given. Each of the next lines contains a query. All numbers in the queries are integers.
1 k queries, 0≤k≤109.2 g x queries, g<G, 1≤x≤109, and at least x guests have the group number g.3 x queries, 0≤x≤109.Process all queries and output as required. It is guaranteed that the output is not empty.
If you know about "cardinals," please assume that "infinite" refers only to "countably infinite." If you don't know about it, then you don't have to worry.