Hình vuông

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: hvuong.inp
Output: hvuong.out

Ngôn ngữ cho phép
C++, PyPy, Python

Có ~N~ tấm ván, mỗi tấm ván có chiều rộng là 1 đơn vị độ dài.
Các tấm ván được đánh số từ 1 đến N, chiều dài của tấm ván thứ i là ~a_i~.

Bạn Trẩu muốn ghép các tấm ván này với chiều dài đặt cạnh nhau, sau đó cắt bỏ phần thừa để tạo thành một mặt bàn hình vuông có diện tích lớn nhất có thể, với các điều kiện sau:

  • Không được ghép các tấm ván theo chiều dài (chỉ đặt các tấm ván cạnh nhau theo chiều rộng).
  • Sau khi ghép, có thể cắt bỏ phần chiều dài thừa của tấm ván sao cho tất cả các tấm được chọn có cùng chiều dài.
  • Mặt bàn hình vuông được tạo từ k tấm ván có cùng chiều dài ~L~, khi đó diện tích = ~(L \times L)~.

Hãy tính độ dài cạnh lớn nhất của bàn hình vuông có thể tạo thành.

Input

Đọc từ tệp HVUONG.INP:

  • Dòng 1: Số nguyên ~N~ — số tấm ván.
  • Dòng 2: Gồm ~N~ số nguyên ~a_1, a_2, \dots, a_n~ — chiều dài của từng tấm ván. Các số cách nhau một dấu cách.

Ràng buộc:

  • ~2 \leq N \leq 10^6~
  • ~2 \leq a[i] \leq 10^6~

Output

Ghi ra tệp HVUONG.OUT:

  • Một số nguyên duy nhất — độ dài cạnh lớn nhất của bàn hình vuông có thể ghép được.

Example

HVUONG.INP

5
4 3 1 4 5

HVUONG.OUT

3

Giải thích:

  • Chọn 3 tấm có độ dài 4, 3, 5.
  • Cắt các tấm để tất cả cùng có chiều dài 3.
  • Ghép lại thành hình vuông 3 x 3, diện tích = 9.
  • Đây là cạnh lớn nhất có thể tạo được.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.