SP2877 SDGAME2 - Another understanding of Super Dice Game
题目描述
爱丽丝和鲍勃正在玩一个有趣的游戏。游戏的规则是,在一个环形赛道上,有 $M$ 个编号为 $0$ 到 $M-1$ 的单元格。其中 $M$ 满足 $2 \le M \le 1,000,000,000$。游戏开始时,两位玩家都站在单元格 $0$。玩家轮流投掷 $N$ 个编号为 $0$ 到 $N-1$ 的“超级骰子”,这里 $N$ 满足 $1 \le N \le 10,000$。虽然我们不太了解这些“超级骰子”的具体机制,但可以知道它们每次投掷的结果为 $0$ 到 $1,000,000,000$ 之间的整数(含端点)。投掷超级骰子之后,玩家移动的步数由骰子上显示的值里的一个连续子序列的乘积决定,如果所有可用的值都不可用,玩家仅前进一个单元格。若骰子显示的数字超过 $1,000,000,000$ 或低于 $0$,该骰子即认为不可用。
要让游戏更具挑战性,每当爱丽丝和鲍勃落在相同的单元格时,所有骰子上显示的数值将乘上当前单元格的编号。这可能导致某些骰子上的值超过 $1,000,000,000$。
玩了一段时间后,爱丽丝和鲍勃觉得计算太复杂,难以继续。现在给定一系列 $R$ 次骰子投掷($1 \le R \le 100,000$)及其范围,我们需要帮助他们计算出每次投掷之后,玩家的当前位置。假设所有骰子最初显示的数字都是 $1$,且初始时每个骰子都是可用的。
输入格式
第一行输入三个整数 $R$、$N$ 和 $M$,它们由空格分隔。接下来的 $R$ 行中,每行有四个整数,分别为 $d$、$v$、$a$、$b$,用空格分隔。其中 $d$ 表示投掷的骰子编号,$v$ 是该骰子掷出的数值,$a$ 和 $b$ 是用于计算移动步数的骰子范围。
输出格式
输出 $R$ 行,每行表示刚刚投掷骰子的玩家在本次投掷后的具体位置。
**本翻译由 AI 自动生成**