#6705. 矢量反转

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: 匿名

题目描述

Source: CodeForces 1148F. Foo Fighters

一方通行在与梼杌战斗的过程中,发现可以通过反转矢量的方式对魔法的防护造成更大的伤害。

现在一方通行能操控 n 束共线的矢量,每个矢量有其强度 v 和长度 l ,其中 l 的正负表示矢量的方向。

一方发现如果用一个标量 s 对矢量强度 v 进行二进制与操作后二进制表示中有奇数个 1 ,这个矢量的方向就会反转,为了让所有矢量的和的方向也反转以达到效果,必须要找到一个适合的 s ,但是一方现在忙着与梼杌战斗无心演算,于是就把这个任务交给了你。

输入格式

第一行包含一个整数 n ,表示矢量的数量

下面 n 行,每行两个整数 l_i,\,v_i ,分别表示矢量的长度与强度。

输出格式

输出包含一个整数,表示能使得矢量反转的 s ,由于答案可能不唯一,你只需要输出任意一个。

样例

样例输入

5
-18 9
-14 56
12 55
-30 31
-14 23

样例输出

8

数据范围与提示

对于 30\% 的数据, n\le 500,\ |l_i|\le 10^5,\ 1\le v_i\le 10^5

对于 100\% 的数据,保证 n\le3\times10^5,\ |l_i|\le10^9,\ 1\le v_i<2^{62}

数据保证 \sum l_i \ne 0