問題文
A と B を正の整数として、f(A,B) を以下の条件を満たす文字列と定めます。
- f(A,B) の長さは A+B である。
- f(A,B) はちょうど A 個の
A
とちょうど B 個の B
を含む。
- f(A,B) の部分文字列であって同じ文字からなるもの(例:
AAAAA
、BBBB
)のうち最長のものの長さは、上記の二つの条件が満たされるという前提のもとで最小である。
- f(A,B) は、上記の三つの条件が満たされるという前提のもとで辞書順最小の文字列である。
例えば、f(2,3) = BABAB
、f(6,4) = AABAABAABB
となります。
次の Q 個のクエリに答えてください。「f(Ai,Bi) の Ci 文字目から Di 文字目までの部分文字列(最初の文字を 1 文字目とする)を求めよ。」
制約
- 1leqQleq103
- 1leqAi,Bileq5times108
- 1leqCileqDileqAi+Bi
- Di−Ci+1leq100
- 入力値はすべて整数である。
部分点
- 1leqAi,Bileq103 を満たすデータセットに正答すると、500 点が与えられる。
入力
入力は標準入力から以下の形式で与えられる。
Q
A1 B1 C1 D1
A2 B2 C2 D2
:
AQ BQ CQ DQ
出力
入力で与えられた順に、各クエリ i について、f(Ai,Bi) の Ci 文字目から Di 文字目までの部分文字列(最初の文字を 1 文字目とする)を個別の行に出力せよ。
入力例 1
5
2 3 1 5
6 4 1 10
2 3 4 4
6 4 3 7
8 10 5 8
出力例 1
BABAB
AABAABAABB
A
BAABA
ABAB