#1351. 每日委托:艾琳,未来的骑士——

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Rhodoks

题目描述

艾琳的面前有 nn 个木桩,排成一排,从左到右编号 [1,n][1,n]。一开始所有的木桩的受伤度都是 00

艾琳希望旅行者帮忙击破木桩,于是旅行者使用了新角色夜兰配合元素战技以及元素爆发带来的伤害增益来完成这项任务。众所周知,夜兰的元素战技需要跑动并且接触到目标之后才能对其造成伤害,元素爆发带来的伤害增益是随时间线性增长的。事实上,夜兰的元素战技并不会锁定木桩。但是可以用破局矢

因此,夜兰每次元素战技的伤害会对连续的一个区间内的木桩造成一个等差数列伤害。更形象地可以被理解为 44 个参数 l,r,s,el,r,s,e

  • [l,r][l,r] 为此次元素战技伤害到的木桩的范围;
  • ss 为最左侧的木桩所受到的伤害;
  • ee 为最右侧的木桩所受到的伤害。

注意:由于一次元素战技也可能是从右向左释放,也有可能不使用元素爆发对伤害加成,所以 s,es,e 之间没有明确的大小关系。但是题目保证给定的参数组一定能构成一个整数等差数列。

现在你想知道发动 mm元素战技之后每个木桩的损伤度。

「原来是用这种方式来解决的吗?太厉害了…」

输入格式

第一行两个整数 n,mn,m

接下来 mm 行,每行 44 个整数,含义见题目描述。

数据保证对每个木桩产生的每次伤害值都是整数。

输出格式

由于输出数据可能过大无法全部输出,为了确保你真的能知道所有的损伤度,只要输出它们的异或和最大值即可。

(异或和就是所有数字按位异或起来的值)

(异或运算符 xor\rm{xor}C++里为^

样例

样例输入1

5 2
1 5 2 10
2 4 1 1

样例输出1

3 10

样例输入2

6 2
1 5 10 2
2 4 1 1

样例输出2

3 10

数据范围与提示

1n1071 \le n \le 10^7

1m3×1051 \le m \le 3\times 10^5

1l<rn1\le l < r \le n

0s,e1090 \le s,e \le 10^9

保证 s,es,e 可以使得 [l,r][l,r] 范围内的每个木桩都受到整数的伤害。

第一次攻击产生的伤害:2,4,6,8,102,4,6,8,10

第二次攻击产生的伤害:0,1,1,1,00,1,1,1,0

所有攻击结束后每个柱子的损伤程度:[2,5,7,9,10][2,5,7,9,10]

输出异或和与最大值,就是 3 103\ 10