loj#P6705. 矢量反转

矢量反转

题目描述

Source: CodeForces 1148F. Foo Fighters

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

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

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

输入格式

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

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

输出格式

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

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

数据范围与提示

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

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

数据保证 li0\sum l_i \ne 0