第8题 组织足球赛(2024GDOI教师比赛5)
小明正在组织一次足球比赛。他想出了以下比赛形式:
在前几个阶段(可能是零个阶段),当球队数量为偶数时,他们抽签两两配对,每对踢一场比赛。在每个阶段,每对输家都会被淘汰(没有平局)。当参赛队数为偶数时,就进行这样的阶段。
最终剩下的队伍将是奇数。如果剩下一支队伍,则宣布该队获胜,比赛结束。否则,剩下的每支队伍都将与其他剩下的队伍进行一次循环赛(如果有 x 支队伍,则将有 x(x−1)/2场比赛),比赛结束。
例如,如果最初有20支队伍,他们将先进行10场比赛。因此,10支球队将被淘汰,剩下的10支球队将进行5场比赛。然后,剩下的5支球队将在循环赛中进行10场比赛。总共将进行10+5+10=25场比赛。
小明已经预订了n场比赛的体育场。请帮助他确定应该邀请多少支球队,以便比赛精确地进行n场比赛。您应该按升序打印所有可能的参赛队数量,这些数量将正好产生n场比赛,如果没有这样的数量,则打印-1。
输入
第一行包含一个整数n ( 1 ≤ n ≤ 10^18 ),即应进行的游戏数量。
输出
按升序打印所有可能的受邀球队数量,每行一个。如果正好n场比赛无法进行,则输出一个数字:-1。
输入样例 1
3
输出样例 1
3
4
输入/输出例子1
输入:25
输出:20
数据范围
36%数据,n<10^8
100%数据,n<=10^18