求解,玄关
查看原帖
求解,玄关
1220211
safdasdfsadfsdaf楼主2025/1/22 21:37

组织足球赛(2024GDOI教师比赛5)

描述

小明正在组织一次足球比赛。他想出了以下比赛形式:

在前几个阶段(可能是零个阶段),当球队数量为偶数时,他们抽签两两配对,每对踢一场比赛。在每个阶段,每对输家都会被淘汰(没有平局)。当参赛队数为偶数时,就进行这样的阶段。

最终剩下的队伍将是奇数。如果剩下一支队伍,则宣布该队获胜,比赛结束。否则,剩下的每支队伍都将与其他剩下的队伍进行一次循环赛(如果有 xx 支队伍,则将有 x(x1)/2x(x-1)/2 场比赛),比赛结束。

例如,如果最初有 2020 支队伍,他们将先进行 1010 场比赛。因此, 1010 支球队将被淘汰,剩下的 1010 支球队将进行 55 场比赛。然后,剩下的 55 支球队将在循环赛中进行10场比赛。总共将进行 10+5+10=2510+5+10=25场比赛。

小明已经预订了 nn 场比赛的体育场。请帮助他确定应该邀请多少支球队,以便比赛精确地进行 n n 场比赛。您应该按升序打印所有可能的参赛队数量,这些数量将正好产生 nn 场比赛,如果没有这样的数量,则打印 1 -1

输入

第一行包含一个整数 n ( 1 ≤ n ≤ 10^18 ) ,即应进行的游戏数量。

输出

按升序打印所有可能的受邀球队数量,每行一个。如果正好n场比赛无法进行,则输出一个数字: 1-1

输入样例 1

3

输出样例 1

3
4

输入/输出例子2

输入:

25

输出:

20

数据范围

36%数据, n<108n<10^8

100%数据,nn \le 10^18

2025/1/22 21:37
加载中...