题号:NC24647
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
wnm最近迷上了全排列,简单的输出一个字符串所有的全排列已经难不住他了。最近他遇到了一个新问题,一个仅由0-9组成的字符串,对于它所有排列所构成的数字按升序排列后的序列,第n个数是多少呢?
输入描述:
首先输入一个正整数t(1<=t<=1000),表示共有t组测试数据。
对于每组测试数据,每行包含一个仅由0-9组成的字符串s(1<=|s|<=6,保证每个字符只会出现一次)和一个正整数n(1<=n<=1000)。
输出描述:
请你找到这个字符串所有的排列所构成的数字按升序排列后的第n个数字,如果存在就输出这个数字,否则输出"no solution"。
示例1
输出
复制
Case 1: 12
Case 2: 132
Case 3: no solution
说明
对于样例1:120所有排列所构成的数字按升序排序后的序列为12,21,102,120,201,210,所以第1个数字是12。
对于样例2:321所有排列所构成的数字按升序排序后的序列为123,132,213,231,312,321,所以第2个数字是132。
对于样例3:213所有排列所构成的数字按升序排序后的序列同样例2,不存在第10个数字。