A92836.小枫的平方数

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小枫有一个仅由数字组成、长度为 nn 的字符串 ss

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

形式化地说,定义 ss 的第 ii 位数字为 sis_i1in1\leq i\leq n)。

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

输入格式

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

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

输出格式

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

输入输出样例

  • 输入#1

    4
    4320

    输出#1

    2
  • 输入#2

    3
    010

    输出#2

    2
  • 输入#3

    13
    8694027811503

    输出#3

    840

说明/提示

样例解释 1

P=(4,2,3,1)P=(4,2,3,1) 时,有 s4×103+s2×102+s3×101+s1=324=182s_4\times10^3+s_2\times10^2+s_3\times10^1+s_1=324=18^2

P=(3,2,4,1)P=(3,2,4,1) 时,有 s3×103+s2×102+s4×101+s1=2304=482s_3\times10^3+s_2\times10^2+s_4\times10^1+s_1=2304=48^2

除此之外,没有其他排列能得到平方数,因此输出 22

样例解释 2

P=(1,3,2)P=(1,3,2)P=(3,1,2)P=(3,1,2) 时,有 i=1Nspi10Ni=1=12\displaystyle\sum_{i=1}^N s_{p_i}10^{N-i}=1=1^2

P=(2,1,3)P=(2,1,3)P=(2,3,1)P=(2,3,1) 时,有 i=1Nspi10Ni=100=102\displaystyle\sum_{i=1}^N s_{p_i}10^{N-i}=100=10^2

除此之外,没有其他排列能得到平方数,因此输出 22

请注意,如果不同的排列得到相同的数,只计为 11 个。

首页