#L4297. 「ROIR 2019 Day1」完全平方数

「ROIR 2019 Day1」完全平方数

题目描述

译自 ROI Regional 2019 Day1 T2. Полные квадраты

为了寻找规律,有时需要按照特定规则生成一个长序列。例如,已知序列 $0, 0+1, 0+1+3, 0+1+3+5, \ldots, 0+1+3+\ldots+(2n-1), \ldots$ 是由前几个奇数的和组成的,这个序列实际上是整数的平方数序列:0,1,4,9,,n2,0, 1, 4, 9, \ldots, n^2, \ldots

我们可以将这个序列进行推广:不再以零作为初始值,而是以一个数 kk 作为初始值。得到的序列为:$k, k+1, k+1+3, k+1+3+5, \ldots, k+1+3+\ldots+(2n-1), \ldots$。与 k=0k=0 的情况不同,这个序列中可能不仅包含完全平方数。我们需要找到序列中出现的最小的非负整数的平方。

编写一个程序,根据给定的整数 kk,确定在上述序列中出现的最小的非负整数的平方,或者确定序列中没有完全平方数。

输入格式

输入包含一行,包含一个整数 kk (1012k1012-10^{12} \leq k \leq 10^{12}),表示序列的初始值。

输出格式

输出一个整数,表示在序列中出现的最小的非负整数的平方。如果序列中没有完全平方数,输出 none

样例 1

输入

0

输出

0

在第一个样例中,序列中的每个数都是完全平方数。最小的完全平方数是 00

样例 2

输入

-5

输出

4

在第二个样例中,序列开始为:5,4,1,4,11,20,-5, -4, -1, 4, 11, 20, \ldots。最小的非负整数的平方是 22=42^2=4

样例 3

输入

2

输出

none

在第三个样例中,序列开始为:2,3,6,11,18,2, 3, 6, 11, 18, \ldots。序列中没有完全平方数。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
1 7 0k10000 \leq k \leq 1000
2 10 0k1050 \leq k \leq 10^5 1
3 27 0k10120 \leq k \leq 10^{12} 1, 2
4 7 1000k1000-1000 \leq k \leq 1000 1
5 10 105k105-10^5 \leq k \leq 10^5 1, 2, 4
6 39 1012k1012-10^{12} \leq k \leq 10^{12} 1, 2, 3, 4, 5