#ABC324D. 平方排列

平方排列

平方排列

题目描述

给定一个长度为 NN、由数字组成的字符串 SS

求出将 SS 的某个排列解释为一个十进制整数后,能够得到的平方数的个数。

更正式地,解决以下问题。

sis _ iSS 从开头数第 ii 个数字(1iN1\leq i\leq N)所对应的数。

求能用排列 P=(p1,p2,,pN)P=(p _ 1,p _ 2,\ldots,p _ N)(1,,N)(1, \dots, N) 的一个排列)表示为 $\displaystyle \sum _ {i=1} ^ N s _ {p _ i}10 ^ {N-i}$ 的平方数的个数。

输入格式

输入按以下格式从标准输入给出:

NN
SS

输出格式

在一行中输出答案。

样例

4
4320
2

对于 P=(4,2,3,1)P=(4,2,3,1),有 $s _ 4\times 10 ^ 3+s _ 2\times 10 ^ 2+s _ 3\times 10 ^ 1+s _ 1=324=18 ^ 2$。

对于 P=(3,2,4,1)P=(3,2,4,1),有 $s _ 3\times 10 ^ 3+s _ 2\times 10 ^ 2+s _ 4\times 10 ^ 1+s _ 1=2304=48 ^ 2$。

其他排列都不能得到平方数,所以输出 22

3
010
2

对于 P=(1,3,2)P=(1,3,2)P=(3,1,2)P=(3,1,2),有 $\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),有 $\displaystyle\sum _ {i=1} ^ N s _ {p _ i}10 ^ {N-i}=100=10 ^ 2$。

其他排列都不能得到平方数,所以输出 22。 注意,如果不同的排列得到相同的数,则不把它们区分开。

13
8694027811503
840

数据范围

  • 1N131\leq N\leq 13
  • SS 是长度为 NN、由数字组成的字符串。
  • NN 是整数。
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
3091
类型
传统题
Time Limit
4000ms
Memory Limit
1024MiB
上传者
标签