cntsquares - Đếm hình vuông
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: ngoclannt

Vova có N đoạn thẳng. Cậu ta thấy rằng một số đoạn thẳng có cùng chiều dài, do đó cậu ta có thể xếp thành những hình vuông từ những đoạn thẳng bằng nhau đó.

Cậu ta muốn biết hình vuông lớn nhất mà cậu ta có thể tạo ra bằng cách sử dụng những đoạn thẳng đó như thế nào. Vì số lượng các đoạn thẳng lớn, cậu ta không thể làm điều đó bằng tay. Bạn có thể giúp cậu ấy biết diện tích tối đa của hình vuông lớn nhất có thể được tạo thành. Đồng thời, cũng tính toán xem có bao nhiêu hình vuông như vậy có thể được tạo thành từ các đoạn thẳng.

Đầu vào: Dòng đầu tiên chứa một số nguyên T biểu thị số bộ dữ liệu kiểm tra. Mỗi bộ dữ liệu gồm:

+ Dòng đầu chứa một số nguyên N biểu thị số đoạn thẳng.

+ Dòng tiếp theo chứa N số nguyên được phân cách bằng dấu cách biểu thị độ dài của mỗi đoạn thẳng.

Đầu ra: Ứng với mỗi bộ dữ liệu vào, in ra một dòng chứa hai số nguyên cách nhau bởi dấu cách biểu thị diện tích tối đa của hình vuông có thể tạo thành và số lượng hình vuông có diện tích tối đa như vậy. Nếu không có hình vuông nào được hình thành, in ra -1.

Ràng buộc:

+ 1 ≤ T ≤ 100; 0 ≤ N ≤ 250;

+ 1 ≤ độ dài mỗi đoạn thẳng  ≤ 103;

Ví dụ

countsquare.inp

countsquare.out

3

7

5 3 2 3 6 3 3

9

2 2 2 9 2 2 2 2 2

3

3 3 3

9 1

4 2

-1

Ví dụ

  • input
    3
    7
    5 3 2 3 6 3 3
    9
    2 2 2 9 2 2 2 2 2
    3
    3 3 3
    output
    9 1
    4 2
    -1
Back to Top