#P14400. [JOISC 2016] 回转寿司 / Sushi

[JOISC 2016] 回转寿司 / Sushi

题目描述

在回转寿司店 JOI,寿司被放置在环形传送带上运送。传送带以逆时针方向旋转。当前,店内有从第 1 号到第 NN 号的 NN 位顾客,他们按编号顺序逆时针围坐在传送带周围。第 NN 号顾客的旁边是第 1 号顾客。

每位顾客手持一枚寿司。每枚寿司都有一个称为“价格”的固定数值。顾客离店时,需支付与其所持寿司价格相等的金额。

回转寿司店 JOI 正在实施一项特别的限时促销活动。该活动分为 QQ 轮,按顺序从传送带前端提供寿司。第 ii 轮(1iQ1 \le i \le Q)提供的寿司内容由三个整数组成 (Si,Ti,Pi)(S_i, T_i, P_i) 表示。

限时促销的规则如下。在促销开始前,店员将回收传送带上所有的寿司。然后对 i=1,2,,Qi = 1, 2, \ldots, Q 依次执行以下步骤 1 至 3:

  1. 在传送带前端、第 SiS_i 号顾客的前方位置,放置一枚价格为 PiP_i 的寿司。
  2. 寿司从第 SiS_i 号顾客的位置移动至第 TiT_i 号顾客的位置,沿传送带逆时针方向行进。途经的每位顾客将对寿司执行以下操作:
    • 若该寿司的价格小于顾客当前所持寿司的价格,则顾客将自己的寿司与传送带上的寿司交换。
    • 若该寿司的价格大于或等于顾客当前所持寿司的价格,则不进行交换。
  3. 寿司经过第 TiT_i 号顾客前方后,店员将回收该寿司。

你是一名在店员手下实习的学徒,负责清洗店内的寿司。为准备清洗工作,你需要提前弄清楚在限时促销的 QQ 轮提供中,店员每次回收的寿司价格分别是多少。

补充(比赛结束后追记)

Si=TiS_i = T_i 时,仅第 SiS_i 号顾客执行第 2 步操作。

题目

给定每位顾客在限时促销开始前各自所持寿司的价格信息,以及限时促销中每轮提供的寿司信息,编写程序求出每轮提供中店员回收的寿司价格。

输入格式

从标准输入读取以下数据:

  • 第 1 行包含两个整数 NNQQ,以空格分隔。这表示顾客人数为 NN,限时促销中寿司的提供轮数为 QQ
  • 接下来的 NN 行中,第 ii 行(1iN1 \le i \le N)包含一个整数 XiX_i。这表示第 ii 号顾客在限时促销开始前持有价格为 XiX_i 的寿司。
  • 接下来的 QQ 行中,第 ii 行(1iQ1 \le i \le Q)包含三个整数 SiS_iTiT_iPiP_i,以空格分隔。这表示第 ii 轮提供的寿司由三元组 (Si,Ti,Pi)(S_i, T_i, P_i) 表示。

输出格式

输出共 QQ 行。第 ii 行(1iQ1 \le i \le Q)输出一个整数,表示在第 ii 轮寿司提供中,店员回收的寿司价格。

6 7
8
6
7
4
5
9
2 4 5
4 1 4
6 2 7
1 5 2
3 4 8
4 3 1
3 1 3
7
9
8
7
8
6
5
4 2
5
2
4
7
1 4 3
1 4 1
7
5
10 10
19
5
8
17
14
3
9
10
7
6
1 8 4
7 3 2
5 9 10
4 8 3
10 3 6
8 7 4
6 6 3
2 9 12
6 3 7
9 6 3
19
10
14
17
8
10
3
12
7
9

提示

样例 1 解释

第 1 至第 6 号顾客在每轮寿司提供后所持寿司的价格如下:

  • 第 1 轮寿司提供后:8,5,6,4,5,98, 5, 6, 4, 5, 9
  • 第 2 轮寿司提供后:8,5,6,4,4,58, 5, 6, 4, 4, 5
  • 第 3 轮寿司提供后:7,5,6,4,4,57, 5, 6, 4, 4, 5
  • 第 4 轮寿司提供后:2,5,6,4,4,52, 5, 6, 4, 4, 5
  • 第 5 轮寿司提供后:2,5,6,4,4,52, 5, 6, 4, 4, 5
  • 第 6 轮寿司提供后:2,5,5,1,4,42, 5, 5, 1, 4, 4
  • 第 7 轮寿司提供后:2,5,3,1,4,42, 5, 3, 1, 4, 4

数据范围

所有输入数据均满足以下条件:

  • 1N4000001 \le N \le 400\,000
  • 1Q250001 \le Q \le 25\,000
  • 1Xi10000000001 \le X_i \le 1\,000\,000\,0001iN1 \le i \le N)。
  • 1SiN1 \le S_i \le N1iQ1 \le i \le Q)。
  • 1TiN1 \le T_i \le N1iQ1 \le i \le Q)。
  • 1Pi10000000001 \le P_i \le 1\,000\,000\,0001iQ1 \le i \le Q)。

子任务

子任务 1 [5 分]

满足以下条件:

  • N2000N \le 2000
  • Q2000Q \le 2000

子任务 2 [15 分]

满足以下条件:

  • Si=1S_i = 11iQ1 \le i \le Q)。
  • Ti=NT_i = N1iQ1 \le i \le Q)。

子任务 3 [80 分]

无额外限制。

翻译由 Qwen3-235B 完成