P15153 [SWERC 2024] Guess How the Ballet Will End
题目描述
在古希腊戏剧中,合唱团经常跳舞。
这些舞蹈令人赏心悦目;舞台上所有的舞者同时执行相同的动作,从剧院的一侧移动到另一侧,从左到右或从右到左。当然,没有舞者可以越过场景的边界。因此,如果指令会导致他们跌出场景,他们只会执行动作直到到达边界,然后停留在那里直到下一个动作。例如,如果动作要求向右 5 步,但舞者只有两步的空间,他/她将只走这两步,然后会在边界等待下一个动作。
你正在挖掘一个剧院,并发现了保存异常完好的纸莎草纸,详细记录了许多戏剧表演中舞者的动作序列,这真是一个宝库。舞者的初始位置你并不知道,因为你只找到了记录动作的纸莎草纸,而其余的指示和戏剧已经遗失。
指令是一个数字序列,告诉所有舞者向左跳 3 步、向右跳 5 步等等,所有舞者同时执行相同的动作。为场景添加一个坐标系,每个舞者 $i$ 从位置 $(X_i, i)$ 开始,而动作只影响他们的 $X$ 坐标(每个舞者在自己的线上跳舞),因此他们不会相互碰撞。他们也都以相同的速度移动;移动 $n$ 步意味着所有舞者的 $X$ 坐标变化相同,除非如上所述他们碰到了边界。
你已经发现,在某些情况下,由于一些舞者可能因为边界而需要缩短某些动作,所有舞者可能在舞蹈结束时完美地排成一条直线(所有舞者 $X$ 坐标相同)。有这么多纸莎草纸,你决定写一个程序来验证是否如此。也许你会了解到关于希腊舞蹈的有趣事情,这取决于所有舞者最终对齐的戏剧数量。
当然,你不知道舞者的起始位置,也不知道他们的数量(只知道至少有十几个),但你认为有些情况下你的程序能够确定舞者最终会全部对齐,如果对齐,还能确定对齐的位置。
输入格式
输入的前两行:
- $R$,一个整数,表示场景的长度。舞者的有效 $X$ 坐标范围从 $0$(场景左侧)到 $R$(场景右侧)。超出此范围会使舞者跌出场景。
- $N$,舞者要执行的移动数量。
第三行,$N$ 个整数 $d_i$,以空格分隔,表示舞者要执行的移动的带符号长度(正数表示舞者向右移动,负数表示向左移动)。
输出格式
如果你能确定所有舞者最终会在同一 $X$ 坐标对齐,则输出一个整数,表示所有舞者最终所在的位置(距离场景左侧的距离)。
否则,输出字符串 `uncertain`。
说明/提示
#### 数据范围
- $1 \leq R \leq 10,000,000,000$
- $1 \leq N \leq 1000$
- $-10,000,000,000 \leq d_i \leq 10,000,000,000$
翻译由 DeepSeek 完成