A92836.小枫的平方数
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
小枫有一个仅由数字组成、长度为 n 的字符串 s。
现在小枫想知道将 s 的各位数字重新排列后,能组成多少种十进制整数,使得这些整数是平方数。
形式化地说,定义 s 的第 i 位数字为 si(1≤i≤n)。
对于 1,…,n 的任意一个排列 p1,p2,…,pn,可以表示出一个整数 i=1∑Nspi10n−i。请计算,在所有可能的排列中,有多少个不同的整数是平方数。
输入格式
第一行输入一个整数 n (1≤n≤13) ,表示字符串的长度。
第二行输入一个长度为 n 的字符串 s ,保证 s 只由数字组成。
输出格式
输出一个整数,表示能组成的十进制整数是平方数的个数。
输入输出样例
输入#1
4 4320
输出#1
2
输入#2
3 010
输出#2
2
输入#3
13 8694027811503
输出#3
840
说明/提示
样例解释 1
当 P=(4,2,3,1) 时,有 s4×103+s2×102+s3×101+s1=324=182。
当 P=(3,2,4,1) 时,有 s3×103+s2×102+s4×101+s1=2304=482。
除此之外,没有其他排列能得到平方数,因此输出 2。
样例解释 2
当 P=(1,3,2) 或 P=(3,1,2) 时,有 i=1∑Nspi10N−i=1=12。
当 P=(2,1,3) 或 P=(2,3,1) 时,有 i=1∑Nspi10N−i=100=102。
除此之外,没有其他排列能得到平方数,因此输出 2。
请注意,如果不同的排列得到相同的数,只计为 1 个。