CCC '17 S3 - Nailed It!

View as PDF

Submit solution

Points: 7 (partial)
Time limit: 1.0s
Memory limit: 256M

Problem type
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig
Canadian Computing Competition: 2017 Stage 1, Junior #5, Senior #3

Tudor is a contestant in the Canadian Carpentry Challenge (CCC). To win the CCC, Tudor must demonstrate his skill at nailing wood together to make the longest fence possible using boards. To accomplish this goal, he has N pieces of wood. The i^{th} piece of wood has integer length L_i.

A board is made up of exactly two pieces of wood. The length of a board made of wood with lengths L_i and L_j is L_i + L_j. A fence consists of boards that are the same length. The length of the fence is the number of boards used to make it, and the height of the fence is the length of each board in the fence. In the example fence below, the length of the fence is 4; the height of the fence is 50; and, the length of each piece of wood is shown:

Tudor would like to make the longest fence possible. Please help him determine the maximum length of any fence he could make, and the number of different heights a fence of that maximum length could have.

Input Specification

The first line will contain the integer N (2 \le N \le 1\,000\,000).
The second line will contain N space-separated integers L_1, L_2, \ldots, L_N (1 \le L_i \le 2\,000).

For 5 of the 15 available marks, N \le 100.
For an additional 4 of the 15 available marks, N \le 1\,000.
For an additional 3 of the 15 available marks, N \le 100\,000.

Output Specification

Output two integers on a single line separated by a single space: the length of the longest fence and the number of different heights a longest fence could have.

Sample Input 1

1 2 3 4

Sample Output 1

2 1

Explanation for Sample Output 1

Tudor first combines the pieces of wood with lengths 1 and 4 to form a board of length 5.
Then he combines the pieces of wood with lengths 2 and 3 to form another board of length 5.
Finally, he combines the boards to make a fence with length 2 and height 5.

Sample Input 2

1 10 100 1000 2000

Sample Output 2

1 10

Explanation for Sample Output 2

Tudor can't make a fence longer than length 1, and there are 10 ways to make a fence with length 1 by choosing any two pieces of wood to nail together.
Specifically, he may have a fence of height 11, 101, 1001, 2001, 110, 1010, 2010, 1100, 2100 and 3000.


  • -3
    pro  commented on Jan. 13, 2018, 8:54 p.m.

    15 available marks?

    • 6
      Xyene  commented on Jan. 14, 2018, 3:42 p.m.

      Problem testcases are weighted out of 15.

  • -8
    root  commented on March 17, 2017, 9:49 p.m.

    This comment is hidden due to too much negative feedback. Click here to view it.

    • -2
      puppy  commented on Dec. 27, 2019, 8:02 p.m.

      why does this have so many downvotes?

    • 7
      AliPatel  commented on March 31, 2017, 9:16 a.m. edited

      There is no penalty for resubmitting. DMOJ uses multiple judges and you may have gotten different judges, which mark at varying speeds. The load on the judges also affects the speed, but if you're getting TLE (Time Limit Exceeded) and think your program is fine, just resubmit later. You can see the status of the judges at