#P13620. [ICPC 2024 APC] Forming Groups

[ICPC 2024 APC] Forming Groups

题目描述

nn 名学生,编号从 11nn,他们需要为即将到来的黑客马拉松分组。你是学生 11,担任队长。学生 ii 的技能水平为 aia_i。学生 22nn 按顺序从左到右站成一排。你可以选择站在任意两名学生之间,或者站在学生 22 的左边,或者站在学生 nn 的右边。你不能改变这 n1n-1 名学生的相对顺序。

你还需要选择分组的数量 kkk>1k > 1kk 必须是 nn 的约数)来参加黑客马拉松。小组编号为 11kk。在你选定自己的位置和 kk 的值之后,学生将按如下方式分组:

  • 从左数第一名学生将被分到第 11 组。
  • 从左数第二名学生将被分到第 22 组。
  • ...
  • 从左数第 kk 名学生将被分到第 kk 组。
  • 从左数第 (k+1)(k+1) 名学生将被分到第 11 组。
  • 从左数第 (k+2)(k+2) 名学生将被分到第 22 组。
  • ...
  • 从左数第 nn 名学生将被分到第 kk 组。

形式化地说,对于每个 jj1jk1 \le j \le k)和每个 ii0i<n/k0 \le i < n/k),从左数第 (i×k+j)(i \times k + j) 名学生将被分到第 jj 组。可以证明,每名学生都将被分到恰好一个小组,且所有小组的学生人数相同。

一个小组的技能水平是组内所有学生技能水平的总和。通过优化选择你站立的位置以及分组数量 kk,你希望最小化比率 xmax/xminx_{\max}/x_{\min},其中

  • xmaxx_{\max} 是技能水平最高的小组的技能水平,
  • xminx_{\min} 是技能水平最低的小组的技能水平。

输入格式

输入的第一行包含一个整数 t(1t100,000)t (1 \le t \le 100,000),代表测试用例的数量。之后是 tt 个测试用例。每个测试用例的格式如下。

一个测试用例的第一行包含两个整数 nna1a_1 (2n1062 \le n \le 10^6; 1a110001 \le a_1 \le 1000)。 下一行包含 n1n-1 个整数 a2,a3,,ana_2, a_3, \dots, a_n(对于所有的 ii1ai10001 \le a_i \le 1000)。

在单个输入文件中,所有测试用例的 nn 的总和不超过 10610^6

输出格式

对于每个测试用例,输出一行,包含两个正整数 ppqq,表示最小比率为 p/qp/q。分数 p/qp/q 应该是最简分数。即 ppqq 应该互质。

2
4 1
2 1 2
3 10
4 3
1 1
10 3

提示

样例解释 #1

在第一个测试用例中,通过站在学生 2233 之间(或学生 3344 之间)并选择 k=2k=2,第 1 组的技能水平为 2+12+1,第 2 组的技能水平为 1+21+2,因此比率为 1/11/1

在第二个测试用例中,kk 的唯一选择是 33