已结束 GESP挑战赛#25

A6505 | 小枫的平方数

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

小枫有一个仅由数字组成、长度为 $n$ 的字符串 $s$。

现在小枫想知道将 $s$ 的各位数字重新排列后,能组成多少种十进制整数,使得这些整数是平方数。

形式化地说,定义 $s$ 的第 $i$ 位数字为 $s_i$($1\leq i\leq n$)。

对于 $1,\ldots,n$ 的任意一个排列 $p_1,p_2,\ldots,p_n$,可以表示出一个整数 $\displaystyle\sum_{i=1}^N s_{p_i}10^{n-i}$。请计算,在所有可能的排列中,有多少个不同的整数是平方数。

输入格式

第一行输入一个整数 $n$ $(1\leq n\leq 13)$ ,表示字符串的长度。

第二行输入一个长度为 $n$ 的字符串 $s$ ,保证 $s$ 只由数字组成。

输出格式

输出一个整数,表示能组成的十进制整数是平方数的个数。

输入输出样例

输入 #1
4
4320
输出 #1
2
输入 #2
3
010
输出 #2
2
输入 #3
13
8694027811503
输出 #3
840
C++ 编辑器
输入
输出