#E0030. 字典序第k小的字符串

字典序第k小的字符串

题目描述

输入一个整数 n(3n105)n(3 \le n \le 10^5)

你需要用 n2n-2 个字符 'a' 以及 22 个字符 'b' 拼接得到一个长度为 nn 的字符串。

按照这种方式可以得到 n(n1)2\frac{n \cdot (n-1)}{2} 个不同的字符串。

比如,当 n=5n = 5 时,按照字典序从小到大排能够得到以下 1010 个不同的字符串:

  1. aaabb
  2. aabab
  3. aabba
  4. abaab
  5. ababa
  6. abbaa
  7. baaab
  8. baaba
  9. babaa
  10. bbaaa

计算并输出按照上述方式能够得到的字典序第 kk 小的字符串。

输入格式

一行,两个整数 nnkk,以一个空格分隔(3n105,1kmin(2109,n(n1)2)3 \le n \le 10^5, 1 \le k \le \min(2\cdot10^9, \frac{n \cdot (n-1)}{2}))。

输出格式

输出共一行,表示由 n2n-2 个字符 'a' 和 22 个字符 'b' 能够得到的字典序第 kk 小的字符串。

5 1
aaabb
5 2
aabab
5 8
baaba

说明/提示

数据规模与约定

  • 对于 20%20\% 的数据,n10n \le 10
  • 对于 50%50\% 的数据,n1000n \le 1000
  • 对于 100%100\% 的数据,3n105,1kmin(2109,n(n1)2)3 \le n \le 10^5, 1 \le k \le \min(2\cdot10^9, \frac{n \cdot (n-1)}{2})