不想想背景的gcd
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

数据结构成绩刚出来导致hb心情很差,所以这道题不会有背景

你有三个长度为n的正整数序列\{a_1, \ldots, a_n\},\{b_1, \ldots, b_n\},\{c_1, \ldots, c_n\},现在我们定义一种叫做hbgcd的概念,

对任意满足1 \leq j \leq n,1 \leq k \leq n的点对(j,k),都有一个对应的hbgcd_{j,k}=gcd \{ a_1 + b_j+c_k, a_2 + b_j+c_k, \ldots, a_n + b_j+c_k \}

对于给出的序列a,b,c,现在hb想让你算出来所有hbgcd_{j,k}(1 \leq j \leq n,1 \leq k \leq n)中的最小值和最大值。

gcd(x,y)是指x,y的最大公因数,即最大的既能整除x也能整除y的数,如128的公因数有\{1,2,4\},其中4是最大的,故gcd(12,8)=4

输入描述:

第一行输入一个正整数n(1 \leq n \leq 2000),代表序列长度。

接下来一行输入n个正整数a_1,a_2, \ldots , a_n(1 \leq a_i \leq 10^{18})

接下来一行输入n个正整数b_1,b_2, \ldots , b_n(1 \leq b_i \leq 10^{18})

最后输入n个正整数c_1,c_2, \ldots , c_n(1 \leq c_i \leq 10^{18})

输出描述:

输出2个正整数,表示所有hbgcd_{j,k}(1 \leq j \leq n,1 \leq k \leq n)中的最小值和最大值。
示例1

输入

复制
3
2 2 4
4 4 1
2 3 2

输出

复制
1 2

说明

j=1,k=2hbgcd=gcd(2+4+3,2+4+3,4+4+3)=1取得最小值;

j=1,k=1hbgcd=gcd(2+4+2,2+4+2,4+4+2)=2取得最大值。