题目描述
For the given integer $n$ $(n\gt 2)$ let's write down all the strings of length $n$ which contain $n−2$ letters `a` and two letters `b` in lexicographical (alphabetical) order.
Recall that the string $s$ of length $n$ is lexicographically less than string $t$ of length $n$, if there exists such $i$ $(1\le i\le n)$, that $s_i\lt t_i$, and for any $j$ $(1\le j\lt i)$ $s_j=t_j$. The lexicographic comparison of strings is implemented by the operator $\lt$ in modern programming languages.
For example, if $n=5$ the strings are (the order does matter):
1. $\text{aaabb}$
2. $\text{aabab}$
3. $\text{aabba}$
4. $\text{abaab}$
5. $\text{ababa}$
6. $\text{abbaa}$
7. $\text{baaab}$
8. $\text{baaba}$
9. $\text{babaa}$
10. $\text{bbaaa}$
It is easy to show that such a list of strings will contain exactly $\large\frac{n\cdot (n−1)}{2}$ strings.
You are given $n$ $(n\gt 2)$ and $k$ $(1\le k\le {\large\frac{n\cdot (n−1)}{2}})$. Print the $k$-th string from the list.
输入格式
The first line contains one integer $t$ $(1\le t\le 10^4)$ — the number of test cases in the test. Then $t$ test cases follow.
Each test case is written on the the separate line containing two integers $n$ and $k$ $(3\le n\le 10^5,1\le k\le\min(2\cdot 10^9,{\large\frac{n\cdot (n−1)}{2}}))$.
The sum of values $n$ over all test cases in the test doesn't exceed $10^5$.
输出格式
For each test case print the $k$-th string from the list of all described above strings of length $n$. Strings in the list are sorted lexicographically (alphabetically).
样例输入 #1
7 5 1 5 2 5 8 5 10 3 1 3 2 20 100
样例输出 #1
aaabb aabab baaba bbaaa abb bab aaaaabaaaaabaaaaaaaa
来源
Codeforces Div. 3 [CF1328B]