#L4834. 「POI 2020/2021 R3」Kolekcjoner Bajtemonów 2

「POI 2020/2021 R3」Kolekcjoner Bajtemonów 2

题目描述

题目译自 XXVIII Olimpiada Informatyczna – III etap Kolekcjoner Bajtemonów 2

Bajtazar 拥有一套数量庞大的 Bajtemon 卡牌收藏。在他的卡牌堆中,每张卡牌上都画着一只 Bajtemon,并标注了它进化前和进化后的战斗力。Bajtazar 决定卖掉这套收藏。根据《字节-比特卡牌交易协议》,收藏的总价值与卡牌堆中所有 Bajtemon 战斗力的最大公约数成正比。然而,这份协议并未考虑到一张卡牌可能标注多个战斗力的情况,因此 Bajtazar 可以自由选择每张卡牌是使用进化前的战斗力,还是进化后的战斗力。

当然,他希望通过选择使最终的最大公约数尽可能大,从而卖出最高的价格。请你写一个程序,帮助他计算出能卖出的最高价值。

输入格式

输入的第一行包含一个整数 nn (1n1061 \leq n \leq 10^{6}),表示 Bajtazar 卡牌堆中的卡牌数量。接下来的 nn 行描述每张卡牌上的 Bajtemon,每行包含用单个空格分隔的两个整数 aia_{i}bib_{i} (1ai51051 \leq a_{i} \leq 5 \cdot 10^{5}, 1bi<2631 \leq b_{i} < 2^{63}),分别表示第 ii 只 Bajtemon 进化前和进化后的战斗力。注意,进化后的战斗力可能比进化前的小。

输出格式

输出只有一行,包含一个整数,表示 Bajtazar 通过选择战斗力能获得的最大公约数

样例 1

输入

4
5 7
10 15
13 20
7 5

输出

5

解释
如果 Bajtazar 选择第三张和第四张卡牌使用进化后的战斗力,而第一张和第二张使用进化前的战斗力,那么最终的战斗力分别是 55, 1010, 2020, 55,它们的最大公约数是 55

样例 2

见附加文件下 kol1.inkol1.out

该样例满足 n=2n=2; a1=18900a_{1}=18900, b1=22050b_{1}=22050, a2=14700a_{2}=14700, b2=17640b_{2}=17640,答案是 73507350

样例 3

见附加文件下 kol2.inkol2.out

该样例满足 n=100000n=100000; ai=100000+ia_{i}=100000+i, bi=100001+ib_{i}=100001+i,答案是 22

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
1 n5000n \leq 5000 42
2 无附加限制 58