12184. Квадрати чисел


Відправити розв'язок

Бали: 100
Time limit: 4.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам дається рядок \(S\) довжиною \(N\), що складається з цифр.

Знайдіть кількість квадратів чисел, які можна отримати, інтерпретуючи перестановку \(S\) як десяткове ціле число.

Більш формально, вирішіть наступне.

Нехай \(s_i\) ​ — число, що відповідає \(i\)-й цифрі \((1≤i≤N)\) від початку \(S\).

Знайдіть кількість квадратів чисел, які можна представити як \(\sum_{i=1}^N s_{p_i}10^{N-i}\) з перестановкою \(P=(p_1 ​,p_2 ​ ,…,p_N ​ )\) з \((1,…,N)\).

Обмеження

  • \(1≤N≤13\)
  • \(S\) — рядок довжиною \(N\), що складається з цифр.
  • \(N\) є цілим числом.

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Наступний   рядок містить \(S\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

4
4320

Приклад вихідних даних

2

Для \(P=(4,2,3,1)\) ми маємо \(s_4 ​ ×10^3+s_2 ​ ×10^2+s_3 ​ ×10^1+s_1 ​ =324=18^2\) .

Для \(P=(3,2,4,1)\) ми маємо \(s_3 ​ ×10^3+s_2 ​ ×10^2+s_4 ​ ×10^1+s_1 ​ =2304=48^2\) .

Жодні інші перестановки не призводять до квадратів чисел, тому вам слід вивести 2.

Приклад вхідних даних

3
010

Приклад вихідних даних

2

Для \(P=(1,3,2)\) or \(P=(3,1,2)\), маємо \(\displaystyle\sum _ {i=1} ^ Ns _ {p _ i}10 ^ {N-i}=1=1 ^ 2\).
Для \(P=(2,1,3)\) or \(P=(2,3,1)\), маємо \(\displaystyle\sum _ {i=1} ^ Ns _ {p _ i}10 ^ {N-i}=100=10 ^ 2\).

Приклад вхідних даних

13
8694027811503

Приклад вихідних даних

840

Коментарі

Ще немає коментарів.