CF962C Make a Square

题目描述

给定一个正整数 $n$,且没有前导零(例如数字 04 是不合法的)。 每次操作你可以删除该整数的任意一位数字,要求删除后结果仍然是一个没有前导零的正整数。 请你判断,最少需要多少次操作,才能将 $n$ 变成某个正整数的平方,或者报告无法做到。 一个整数 $x$ 是某个正整数的平方,当且仅当存在正整数 $y$ 使得 $x = y^2$。

输入格式

第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^{9}$)。该数字没有前导零。

输出格式

如果无法通过上述操作将 $n$ 变成某个正整数的平方,输出 $-1$。否则,输出所需的最小操作次数。

说明/提示

在第一个样例中,我们应当从 $8314$ 中删除数字 $3$ 和 $4$,此后 $8314$ 变为 $81$,而 $81$ 是整数 $9$ 的平方。 在第二个样例中,给定的 $625$ 本身就是整数 $25$ 的平方,因此不需要删除任何数字。 在第三个样例中,无法通过删除数字将 $333$ 变为某个正整数的平方,因此答案为 $-1$。 由 ChatGPT 4.1 翻译