编程题
### 问题描述
小然在一次探险中,发现了一个神秘的石阵。石阵由 $N$ 块石头组成,每块石头都蕴含着一种神秘的力量,形成了一个长度为 $N$ 的数组 $A_i$。
小然发现,他可以通过调动连续的几块石头的力量,形成一个子序列。这个子序列的"神秘力量值"被定义为其最大和最小元素的乘积。
现在,小然想知道,所有可能的子序列中,"神秘力量值"的最小值和最大值分别是多少。
请注意,子序列是通过删除数组开头的若干元素和结尾的若干元素得到的。
### 输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。
每个测试用例的第一行包含一个整数 $N$,表示石阵中石头的数量。第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示每块石头的力量。
### 输出格式
对于每个测试用例,输出一行,包含两个空格分隔的整数,表示所有可能子序列的"神秘力量值"的最小值和最大值。
### 样例输入
```text
2
2
2 2
3
5 0 9
```
### 样例输出
```text
4 4
0 81
```
### 说明
在第一个测试用例中,子序列的"神秘力量值"的最小值和最大值都是 $4$。我们可以选择子序列 $[2, 2]$,其"神秘力量值"为 $2 \times 2 = 4$。
### 评测数据范围
$1 \leq T \leq 100$。
$1 \leq N \leq 10^5$。
$-10^9 \leq A_i \leq 10^9$。
所有测试用例中,$N$ 的总和不超过 $3 \times 10^5$。