luogu#P8955. 「VUSC」Card Tricks

「VUSC」Card Tricks

题目背景

upd 2023.1.17 数据已加强。

upd 2023.10.18 空间限制调整为 100 MiB。

Bessie 正在玩一场卡牌游戏!

这个游戏有一些神秘的规则。Bessie 需要用一些编程技巧,加快计算。

题目描述

牌堆可以看成一个长度为 NN 的数列,下标为 ii 的位置值为 aia_i(1iN)(1\le i\le N)

QQ 次操作,每次操作给定 li,ri,vil_i,r_i,v_ilijri,ajajvi\forall l_i\le j \le r_i,a_j\gets a_j \lor v_i

其中 \lor 表示按位或操作,即 C++ 中的 |

对于 i=1,2,,Ni=1,2,\dots,N,求出在哪一次操作后,aia_i 首次严格大于 PP,其中 PP 为一给定常数。

数据保证在初始情况下,Pmax{ai}P\ge\max\{a_i\}

输入格式

第一行三个整数 N,Q,PN,Q,P

第二行 NN 个整数,第 ii 个数为 aia_i 的初始值。

接下来 QQ 行,每行三个整数,li,ri,vil_i,r_i,v_i

输出格式

输出 NN 个数 id1,id2,,idNid_1,id_2,\dots,id_N,第 ii 个数表示在第 idiid_i 次操作后,aia_i 首次严格大于 PP

如果 aia_i 始终小于等于 PP,请在这一位输出 1-1

5 7 10
1 2 3 4 5
1 1 1
1 1 10
2 5 4
2 3 8
5 5 2
5 5 1
5 5 16
2 4 4 -1 7
10 10 86
26 27 33 1 21 31 9 22 17 14
6 10 76
5 8 85
4 5 89
3 9 87
2 9 100
7 10 83
1 6 75
1 4 66
3 10 68
3 4 72
7 5 4 3 3 1 2 1 1 6

提示

样例 #1 解释

第一次操作后的数列为 1,2,3,4,51,2,3,4,5

第二次操作后的数列为 11,2,3,4,511,2,3,4,5

第三次操作后的数列为 11,6,7,4,511,6,7,4,5

……

最终的数列为 11,14,15,4,2311,14,15,4,23


数据范围

全部数据满足:1N,Q1061\le N,Q \le 10^61liriN1\le l_i\le r_i \le N1ai,vi,P1091\le a_i,v_i,P\le 10^9

测试点 121\sim2 另满足 1N,Q1031\le N,Q\le 10^3

测试点 33 另满足 li=ril_i=r_i

测试点 44 另满足 li=1,ri=Nl_i=1,r_i=N

测试点 5105\sim10 无额外限制。

本题数据规模较大,请注意常数优化。