#HK4297. 「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

0
0

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

-5
2

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

2
none

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

数据范围与提示

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

子任务 分值 附加限制 子任务依赖
11 77 0k10000 \leq k \leq 1000
22 1010 0k1050 \leq k \leq 10^5 11
33 2727 0k10120 \leq k \leq 10^{12} 1,21, 2
44 77 1000k1000-1000 \leq k \leq 1000 11
55 1010 105k105-10^5 \leq k \leq 10^5 1,2,41, 2, 4
66 3939 1012k1012-10^{12} \leq k \leq 10^{12} 151-5