#YMONI260102. 纸带折叠

纸带折叠

纸带折叠

题目描述

一条纸带可以看作一条数轴。纸带上有 nn 个标记点,第 ii 个标记点的坐标为 xix_i,所有坐标均互不相同的整数。

你可以选择一个实数 cc,沿坐标为 cc、垂直于纸带的直线将纸带的一侧翻到另一侧。折叠后,原来位于折线两侧的两个标记点可能重合。

若两个不同的标记点折叠后位于同一位置,则称它们形成一对重合点。每个标记点至多属于一对重合点。

请你求出:

  1. 一次对折最多能形成多少对重合点;
  2. 有多少条不同的折线能够达到这个最大值。

两条折线的位置 cc 不同,就视为不同的折线。折线可以经过标记点,也可以位于两个整数坐标之间。

输入格式

从文件 fold.in 中读入数据。

第一行一个整数 nn。 第二行 nn 个互不相同的整数 x1,x2,,xnx_1,x_2,\dots,x_n,表示所有标记点的坐标。

输出格式

输出到文件 fold.out 中。

输出两个整数 \(M,K\)

  • MM 表示最多能形成的重合点对数;
  • KK 表示能够形成恰好 MM 对重合点的不同折线条数。

样例输入

5
0 1 2 3 4

样例输出

2 3

样例解释

2c2c 分别为 \(3,4,5\) 时,都能形成 22 对重合点,因此最优折线共有 33 条。

数据规模与约定

对于所有数据:

  • 2n30002 \le n \le 3000
  • xi1012|x_i| \le 10^{12}
  • 所有 xix_i 互不相同。

本题采用子任务测试。只有通过一个子任务中的所有测试点,才能获得该子任务的全部分数。

子任务 测试点 限制 分值 特性
1 121 \sim 2 n20n \le 20 10
2 343 \sim 4 n1000n \le 1000
3 565 \sim 6 xix_i 排序后是等差数列
4 787 \sim 8 xix_i 全是偶数
5 9109 \sim 10 xix_i 全是奇数
6 111211 \sim 12 n2000n \le 2000 xix_i 排序后是等差数列
7 131413 \sim 14 xix_i 全是偶数
8 151615 \sim 16 xix_i 全是奇数
9 172017 \sim 20 20