가장 긴 울타리

길이가 2000 이하인 나무 조각을 최대 10^6개 줄 때, 같은 합이 되도록 둘씩 짝지어 만들 수 있는 가장 긴 울타리의 길이와 그 길이를 내는 높이의 가짓수를 구한다.

보통6배열투 포인터구현수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

투도르는 목공 대회에 참가한다. 우승하려면 나무 조각을 못으로 이어 붙여 최대한 긴 울타리를 만들어야 한다. 투도르에게는 나무 조각이 N개 있고, i번째 조각의 길이는 정수 LiL_i이다.

널빤지 하나는 나무 조각 정확히 두 개로 만든다. 길이가 LiL_i인 조각과 LjL_j인 조각을 이어 붙인 널빤지의 길이는 Li+LjL_i + L_j이다. 울타리는 길이가 모두 같은 널빤지로 이루어진다. 울타리의 길이는 사용한 널빤지의 개수이고, 울타리의 높이는 널빤지 하나의 길이이다. 아래 그림의 울타리는 길이가 4, 높이가 50이며 나무 조각마다 길이를 적어 두었다.

나무 조각 하나는 널빤지 하나에만 쓸 수 있고, 남는 조각이 있어도 된다. 투도르가 만들 수 있는 울타리의 최대 길이와, 그 최대 길이를 갖는 울타리의 높이가 몇 가지인지 구하라.

입력

첫째 줄에 정수 N이 주어진다. (2N1062 \le N \le 10^6)

둘째 줄에 정수 L1,L2,,LNL_1, L_2, \dots, L_N이 공백으로 구분되어 주어진다. (1Li20001 \le L_i \le 2000)

출력

한 줄에 정수 두 개를 공백으로 구분해 출력한다. 첫 번째 수는 울타리의 최대 길이이고, 두 번째 수는 그 최대 길이를 갖는 울타리의 높이가 몇 가지인지이다.

힌트

첫 번째 예제에서 투도르는 길이가 1인 조각과 4인 조각을 붙여 길이 5짜리 널빤지를 만들고, 길이가 2인 조각과 3인 조각을 붙여 길이 5짜리 널빤지를 하나 더 만든다. 이 널빤지 두 개로 길이가 2, 높이가 5인 울타리를 만든다.

두 번째 예제에서는 길이가 2 이상인 울타리를 만들 수 없다. 조각 두 개를 고르는 방법이 10가지이고 그 합이 모두 다르므로, 길이가 1인 울타리의 높이는 11, 101, 1001, 2001, 110, 1010, 2010, 1100, 2100, 3000의 10가지이다.