跳到主要内容

P5447. 巷道穿梭

场次:2026年9月15日 · 来源:CodeFun2000 P5447

题目描述​

质检员小柯在城南自动化立库核对巷道穿梭车的行程日志。巷道是一条长度为 LL 的直线导轨,穿梭车抵达 00 端或 LL 端时,限位器会立刻使其掉头。

已知穿梭车的初始位置 ss 与初始朝向 dd,随后依次执行 nn 条调度指令。每条指令要求沿当前朝向行驶距离 aia_i,途中允许反复撞限位并掉头。请根据日志计算限位触发总次数、最终位置与最终朝向。

若初始时 s=0s = 0 且 d=Ld = L,则视为执行第一条指令前已完成掉头,初始朝向按 RR 处理;若初始时 s=Ls = L 且 d=Rd = R,则初始朝向按 LL 处理。该初始修正不计入触发次数,仅在执行指令的行驶过程中抵达端点时计一次。

输入格式​

第一行输入四个整数 nn(1≤n≤2×1051 \le n \le 2 \times 10^5)、LL(1≤L≤1091 \le L \le 10^9)、ss(0≤s≤L0 \le s \le L),以及朝向字符 d∈{L,R}d \in \{L,R\}。

第二行输入 nn 个非负整数 aia_i(0≤ai≤10120 \le a_i \le 10^{12})。

输出格式​

输出限位触发总次数、最终位置与最终朝向。

示例​

示例 1​

输入:

4 8 2 L
3 6 10 4

输出:

3 5 R

说明:

初始位置为 22,朝向为 LL,巷道长 88。

  • 行驶 33:向左先走 22 抵达 00 端并掉头(计 11 次),再向右走 11,停在 11,朝向 RR。
  • 行驶 66:向右走 66,未碰端点,停在 77,朝向 RR。
  • 行驶 1010:向右先走 11 抵达 88 端并掉头(第 22 次),再向左走 88 抵达 00 端并掉头(第 33 次),再向右走 11,停在 11,朝向 RR。
  • 行驶 44:向右走 44,停在 55,朝向 RR。

因此输出 3 5 R。

加载评论中...