2022 软件学院 AK 杯程序设计竞赛

Problem F. 数学王子Serein

为了消遣时光,Serein去找了道数学智力题来做,题目如下:

1988 表示成 28 个连续偶数的和,那么其中最大的那个偶数是多少?

这对于数学王子Serein来说太简单了,经过演算,他得到答案为 98

Serein不满足于解决某一特定的问题,于是他将问题推广,得到了一个新的问题:

对于给定的正整数 ss 是否能被表示为 n 个连续正偶数的和?

他认为这个问题还是太简单了,于是将这个问题留给了你。

对于给定的正整数 s ,如果它能被表示为 n 个连续正偶数的和,则输出其中最大的一个正偶数。

若不能,则输出 -1

输入

输入两个整数 sn 。(1\leq n \leq s \leq 1 \times 10^{12})

输出

如果 s 能由 n 个连续正偶数和表示,输出其中最大的偶数,否则输出 -1

样例

标准输入 复制文本
1988 28
标准输出 复制文本
98
标准输入 复制文本
1987 28
标准输出 复制文本
-1

提示

对 C/C++ 选手请注意,int 的最大值约为 2 \times10^9 ,请使用合理的数据类型

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 1410
通过 65

A B C D E F G H I J

比赛结束时将在信205 B进行滚榜,有兴趣的同学可以留下来看
注意D题中的!是阶乘的意思
题目难度总体递增但不保证单调递增,被前面题卡住的可以往后面看看
本次ak杯 16:30 封榜,17:10 比赛结束
由于刚开始服务器问题,本次ak杯延长10min,到17:10结束
第一题,只需要输出三次I Miss Serein