艾琳的面前有 nnn 个木桩,排成一排,从左到右编号 [1,n][1,n][1,n]。一开始所有的木桩的受伤度都是 000。
艾琳希望旅行者帮忙击破木桩,于是旅行者使用了新角色夜兰配合元素战技以及元素爆发带来的伤害增益来完成这项任务。众所周知,夜兰的元素战技需要跑动并且接触到目标之后才能对其造成伤害,元素爆发带来的伤害增益是随时间线性增长的。事实上,夜兰的元素战技并不会锁定木桩。但是可以用破局矢。
元素战技
元素爆发
众所周知
破局矢
因此,夜兰每次元素战技的伤害会对连续的一个区间内的木桩造成一个等差数列伤害。更形象地可以被理解为 444 个参数 l,r,s,el,r,s,el,r,s,e:
注意:由于一次元素战技也可能是从右向左释放,也有可能不使用元素爆发对伤害加成,所以 s,es,es,e 之间没有明确的大小关系。但是题目保证给定的参数组一定能构成一个整数等差数列。
现在你想知道发动 mmm 次元素战技之后每个木桩的损伤度。
「原来是用这种方式来解决的吗?太厉害了…」
第一行两个整数 n,mn,mn,m;
接下来 mmm 行,每行 444 个整数,含义见题目描述。
数据保证对每个木桩产生的每次伤害值都是整数。
由于输出数据可能过大无法全部输出,为了确保你真的能知道所有的损伤度,只要输出它们的异或和与最大值即可。
异或和
最大值
(异或和就是所有数字按位异或起来的值)
(异或运算符 xor\rm{xor}xor 在C++里为^)
C++
^
5 2 1 5 2 10 2 4 1 1
3 10
6 2 1 5 10 2 2 4 1 1
1≤n≤1071 \le n \le 10^71≤n≤107
1≤m≤3×1051 \le m \le 3\times 10^51≤m≤3×105
1≤l<r≤n1\le l < r \le n1≤l<r≤n
0≤s,e≤1090 \le s,e \le 10^90≤s,e≤109
保证 s,es,es,e 可以使得 [l,r][l,r][l,r] 范围内的每个木桩都受到整数的伤害。
第一次攻击产生的伤害:2,4,6,8,102,4,6,8,102,4,6,8,10;
第二次攻击产生的伤害:0,1,1,1,00,1,1,1,00,1,1,1,0;
所有攻击结束后每个柱子的损伤程度:[2,5,7,9,10][2,5,7,9,10][2,5,7,9,10]。
输出异或和与最大值,就是 3 103\ 103 10。